C# Online ! 第十四篇:C# ~ 命名空間–namespace
大家好! 這次要跟大家介紹的是在C#中,會被大量使用的 『命名空間–namespace』。其實有看小弟文章的初心者朋友們,應該早就已經有看過 namespace 簡略的介紹,而我們在做簡單的範例練習的時候,也已經有運用到 namespace 了喔(在底下會提到)! 還是先來介紹 namespace 這個關鍵字吧!
namespace :
用途在於宣告範圍。這個命名空間範圍讓您組織程式碼並且提供建立全域唯一型別的方法。命名空間有兩種類型:使用者自訂與系統定義,使用者定義命名空間是在程式碼裡定義的命名空間。(系統定義的命名空間清單,有興趣的朋友可以參考 MSDN-類別庫參考)
在命名空間裡,我們還可以宣告一或多個下列型別:
也就是說,以上6個型別都可以放在namespace 裡面。
接下來我們就來看看,為什麼在C# 程式設計的時候,會大量地使用『命名空間』呢?
主要的原因有兩個:
- 第一個原因:.NET Framework 會使用命名空間來組織其多種類別,拿我們在第三篇做的「hello, world」練習來舉例給大家看:
在寫程式的時候,我們可以直接這樣寫:
從以上的程式碼可以看到,System 是命名空間,而『. 運算子』後面的 Console 是該命名空間中所包含的類別。當然 System 這個命名空間中還有其他很多類別可以使用,各位初心者朋友可以試著在練習的專案裡面打完 System 後加上點運算子 (.),就可以看到該命名空間裡包含了哪些東西。 所以這一行程式碼,可以敘述為 System是命名空間,他裡面包含了其中一個類別是 Console ,Console裡面有一個方法是WriteLine,這樣說大家應該比較容易理解。
還有另一種寫法,就是使用 using,大部分的 C# 應用程式都以使用 using 指示詞的區段做為開頭。這個區段會列出應用程式經常使用的命名空間,這樣一來,程式設計人員每次使用其中的方法時,就不需要再指定完整名稱。 所以一樣拿上面的例子來舉例,我們就可以寫成:
有發現什麼地方不一樣嗎? 因為我們一開始就使用 using 指示詞讓編譯器知道我們接下來會一直使用System這個命名空間,所以底下我們在要用到Console這個類別的時候,前面就不需要再給它完整的命名空間,也就是System。
- 第二個原因:宣告自己的命名空間,可以幫助我們在較大型的程式設計專案中控制類別和方法名稱的範圍。就如一開始就跟大家介紹的命名空間有兩種類型,使用者自訂與系統定義,以後我們在大型的專案裡宣告自己需要的命名空間,可以幫助我們組織程式碼並建立全域唯一型別。
知道為什麼 C# 會大量使用命名空間的原因以後,也要知道命名空間特有的屬性嘍:
-
命名空間可以用於組織大型的程式碼專案。
-
命名空間會以 . 運算子分隔。
-
使用using 指示詞表示您不必為每個類別指定命名空間的名稱。
-
global 命名空間是「根」命名空間,因此 global::system 固定會參考 .NET Framework 命名空間 System。
還有大家要注意的一個重點,宣告自己的命名空間的時候,別忘記命名的規則唷!! 通常幫『命名空間』命名的時候,都是使用 Pascal 命名法喔,其規則在第十篇的時候有提到,有興趣的朋友可以參考。
希望資深的前輩們與跟我一樣剛開始想學習C#的初心者,可以給我一些建議跟鼓勵,或是幫我在FB按個讚! 謝謝呀 ~
(本文中相關內容有參閱、引述MSDN)
如果這篇文章對您有幫助,請幫我點選「我要推薦」、按個讚、或是幫我推到其他平台;您的鼓勵將會是我繼續努力的一大動力!!
若是有任何指教或是需要討論之處,也不用客氣,請在下面留言給我,我將會儘速回覆~