技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運(yùn)營(yíng)

贊助商

分類目錄

贊助商

最新文章

搜索

示例詳解C#命名空間的定義、using指令、嵌套、別名等用法

作者:admin    時(shí)間:2023-4-26 14:11:11    瀏覽:

在本文中,將介紹 C# 命名空間,教你如何使用“using”指令,以及教你如何使用“別名”指令等。

 

如何定義命名空間

命名空間在管理 C# 中的相關(guān)類方面起著重要作用。.NET Framework 使用命名空間來(lái)組織其內(nèi)置類。例如.NET中有一些內(nèi)置的命名空間,如System、System.Linq、System.Web等,每個(gè)命名空間都包含相關(guān)的類。

命名空間定義以關(guān)鍵字命名空間開(kāi)頭,后跟命名空間名稱,如下所示 :

namespace namespace_name {
   // code declarations
}

要調(diào)用函數(shù)或變量的啟用命名空間的版本,請(qǐng)?jiān)诿臻g名稱前添加如下:

namespace_name.item_name;

以下程序演示了名稱空間的使用

using System;

namespace first_space {
   class namespace_cl {
      public void func() {
         Console.WriteLine("Inside first_space");
      }
   }
}
namespace second_space {
   class namespace_cl {
      public void func() {
         Console.WriteLine("Inside second_space");
      }
   }
}
class TestClass {
   static void Main(string[] args) {
      first_space.namespace_cl fc = new first_space.namespace_cl();
      second_space.namespace_cl sc = new second_space.namespace_cl();
      fc.func();
      sc.func();
      Console.ReadKey();
   }
}

編譯并執(zhí)行上述代碼時(shí),會(huì)產(chǎn)生以下結(jié)果

Inside first_space
Inside second_space

如何使用“using”指令

using關(guān)鍵字聲明程序正在使用給定名稱空間中的名稱。例如,我們?cè)诔绦蛑惺褂?strong>System命名空間,類 Console 在那里定義,我們只需寫:

Console.WriteLine ("Hello there");

我們可以將完全限定名稱寫為

System.Console.WriteLine("Hello there");

你還可以避免使用using namespace 指令在名稱空間前添加。該指令告訴編譯器后續(xù)代碼正在使用指定命名空間中的名稱。因此,命名空間隱含在以下代碼中。

下面我們用 using 指令重寫前面的例子。

using System;
using first_space;
using second_space;

namespace first_space {
   class abc {
      public void func() {
         Console.WriteLine("Inside first_space");
      }
   }
}
namespace second_space {
   class efg {
      public void func() {
         Console.WriteLine("Inside second_space");
      }
   }
}   
class TestClass {
   static void Main(string[] args) {
      abc fc = new abc();
      efg sc = new efg();
      fc.func();
      sc.func();
      Console.ReadKey();
   }
}

編譯并執(zhí)行上述代碼時(shí),會(huì)產(chǎn)生以下結(jié)果。

Inside first_space
Inside second_space

下面一個(gè)例子,我們將編寫一個(gè)使用 Hello 類的控制臺(tái)應(yīng)用程序,我們可以只使用 class-arun.CSharp.Namespaces.Hello 的完全限定名稱,但這個(gè)名稱非常長(zhǎng)且笨拙。一種更簡(jiǎn)單的方法是使用“using”指令,這使得無(wú)需限定即可使用名稱空間中的所有類型。如果你想在不鍵入完全限定名稱的情況下調(diào)用方法,你可以實(shí)現(xiàn)“using”指令。

using sysem;  
using arun.CSharp.Namespaces;  
class Hello {  
    static void Main() {  
        Hello m = new Hello();  
        System.Console.WriteLine(m.GetMessage());  
    }  

using System”允許你鍵入“System”命名空間成員的方法名稱,而無(wú)需每次都鍵入“System”一詞。在 Hello() 類中,“Console”是“System”命名空間的類成員,方法是“WriteLine”。它的完全限定名稱是“System.Console.WriteLine(...)”。

請(qǐng)注意,兩次出現(xiàn)的 Helloarun.CSharp.Namespaces.Hello 的簡(jiǎn)寫。

如何使用別名指令

C# 還支持別名的定義和使用。在兩個(gè)庫(kù)之間發(fā)生名稱沖突的情況下,或者在使用來(lái)自更大名稱空間的少量類型時(shí),此類別名可能很有用。

using-alias-directive 引入了一個(gè)標(biāo)識(shí)符,作為緊鄰的編譯單元或命名空間主體中的命名空間或類型的別名。

using identifier = namespace-or-type-name ;  

在包含 using-alias-directive 的編譯單元或命名空間主體中的成員聲明中,using-alias-directive 引入的標(biāo)識(shí)符可用于引用給定的命名空間或類型。

例如

namespace N1.N2 {  
    class A {}  
}  
namespace N3 {  
    using A = N1.N2.A;  
    class B: A {}  

這里,在 N3 命名空間的成員聲明中,AN1.N2.A 的別名,因此類 N3.B 派生自類 N1.N2.A。為N1.N2創(chuàng)建一個(gè)別名R,然后引用RA,也可以獲得相同的效果。

namespace N3 {  
    using R = N1.N2;  
    class B: R.A {}  

using-alias-directive 的標(biāo)識(shí)符在直接包含 using-alias-directive 的編譯單元或命名空間的聲明空間內(nèi)必須是唯一的。

如何嵌套命名空間

你可以在另一個(gè)命名空間內(nèi)定義一個(gè)命名空間,如下所示。

namespace namespace_name1 {
   
   // code declarations
   namespace namespace_name2 {
      // code declarations
   }
}

你可以使用點(diǎn) (.) 運(yùn)算符訪問(wèn)嵌套命名空間的成員,如下所示。

using System;
using first_space;
using first_space.second_space;

namespace first_space {
   class abc {
      public void func() {
         Console.WriteLine("Inside first_space");
      }
   }
   namespace second_space {
      class efg {
         public void func() {
            Console.WriteLine("Inside second_space");
         }
      }
   }   
}
class TestClass {
   static void Main(string[] args) {
      abc fc = new abc();
      efg sc = new efg();
      fc.func();
      sc.func();
      Console.ReadKey();
   }
}

編譯并執(zhí)行上述代碼時(shí),會(huì)產(chǎn)生以下結(jié)果。

Inside first_space
Inside second_space

總結(jié)

本文通過(guò)示例介紹了C#命名空間的一些基礎(chǔ)知識(shí),它可以幫助你更加了解C#的命名空間的含義及使用。

相關(guān)文章

標(biāo)簽: CSharp  asp.net  aspx  命名空間  
x
  • 站長(zhǎng)推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */