C#面向對象--命名空間


  一、在C#中,使用命名空間(Namespace)可以幫助控制自定義類型的作用范圍,同時對大量的類型進行組織;使用namespace關鍵字聲明命名空間,命名空間可以嵌套使用:

namespace MyNameSpace
{
    namespace MyNestedNameSpace
    {
        class MyClass
        {
            public void MyFunc()
            {
                //do...
            }
        }
    }
}

  1.命名空間默認即為public,沒有任何訪問限制,不能使用任何訪問修飾符;

  2.在命名空間中的定義的五種基本類型(類class、結構struct、接口interface、枚舉enum和委托delegate),只能是public或internal的,默認為internal的;

  3.每一種類型根據其命名空間的不同會擁有一個唯一名稱,即完全限定名稱(Fully Qualified Name),例如上面自定義類型MyClass的完全限定名稱為MyNameSpace.MyNestedNameSpace.MyClass;

  ※完全限定名稱才是CLR看到的實際類型名稱;

  二、使用using關鍵字引用指定的命名空間,這樣可在當前代碼范圍內免去為每個類型指定命名空間的名稱,通過.運算符分隔嵌套的命名空間:

using MyNameSpace.MyNestedNameSpace;

  ※此時,可以直接在代碼中訪問MyNameSpace.MyNestedNameSpace命名空間中的MyClass類:

MyClass myClass = new MyClass();
myClass.MyFunc();

  三、使用using關鍵字還可以創建命名空間或類的別名(Alias Directive),從而在需要明確指定命名空間或類型的名稱時簡化代碼:

  1.命名空間別名:

using My = MyNameSpace.MyNestedNameSpace;

  ※此時,可以通過My.MyClass訪問MyNameSpace.MyNestedNameSpace命名空間中的MyClass類:

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/

本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM