1、在C#中,使用命名空間(Namespace)能夠幫助控制自定義類型的做用範圍,同時對大量的類型進行組織;使用namespace關鍵字聲明命名空間,命名空間能夠嵌套使用:spa
namespace MyNameSpace { namespace MyNestedNameSpace { class MyClass { public void MyFunc() { //do... } } } }
1.命名空間默認即爲public,沒有任何訪問限制,不能使用任何訪問修飾符;code
2.在命名空間中的定義的五種基本類型(類class、結構struct、接口interface、枚舉enum和委託delegate),只能是public或internal的,默認爲internal的;blog
3.每一種類型根據其命名空間的不一樣會擁有一個惟一名稱,即徹底限定名稱(Fully Qualified Name),例如上面自定義類型MyClass的徹底限定名稱爲MyNameSpace.MyNestedNameSpace.MyClass;接口
※徹底限定名稱纔是CLR看到的實際類型名稱;get
2、使用using關鍵字引用指定的命名空間,這樣可在當前代碼範圍內免去爲每一個類型指定命名空間的名稱,經過.運算符分隔嵌套的命名空間:博客
using MyNameSpace.MyNestedNameSpace;
※此時,能夠直接在代碼中訪問MyNameSpace.MyNestedNameSpace命名空間中的MyClass類:it
MyClass myClass = new MyClass(); myClass.MyFunc();
3、使用using關鍵字還能夠建立命名空間或類的別名(Alias Directive),從而在須要明確指定命名空間或類型的名稱時簡化代碼:io
1.命名空間別名:class
using My = MyNameSpace.MyNestedNameSpace;
※此時,能夠經過My.MyClass訪問MyNameSpace.MyNestedNameSpace命名空間中的MyClass類:List
My.MyClass myClass = new My.MyClass(); myClass.MyFunc();
※對於命名空間別名在使用時,更好的方式是使用::運算符代替.運算符,以此避免在使用時將其理解爲類型並能夠防止意外引入與別名同名的類型:My::MyClass()
2.類型別名:
using My = MyNameSpace.MyNestedNameSpace.MyClass;
※此時,能夠直接經過別名My代替MyNameSpace.MyNestedNameSpace命名空間中的MyClass類:
My myClass = new My(); myClass.MyFunc();
3.全局命名空間限定符global關鍵字與::運算符一塊兒使用時,始終引用的是頂級根命名空間(.Net)中的類型,例如:
global::System.Collections.Generic.List<int>
若是您以爲閱讀本文對您有幫助,請點一下「推薦」按鈕,您的承認是我寫做的最大動力!
做者:Minotauros
出處:https://www.cnblogs.com/minotauros/
本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留追究法律責任的權利。