C# 命名空間(Namespace)
命名空間的設計目的是為了提供一種讓一組名稱與其他名稱分隔開的方式。在一個命名空間中聲明的類別的名稱與另一個命名空間中聲明的相同的類別的名稱不衝突。
定義命名空間
命名空間的定義是以關鍵字 namespace 開始,後跟命名空間的名稱,如下所示:
namespace namespace_name { // 代码声明 }
為了調用支援命名空間版本的函數或變量,會把命名空間的名稱置於前面,如下所示:
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(); } }
當上面的程式碼被編譯和執行時,它會產生下列結果:
Inside first_space Inside second_space
using 關鍵字
using 關鍵字表明關鍵字程式使用的是給定命名空間中的名稱。例如,我們在程式中使用 System 命名空間,其中定義了類別 Console。我們可以只寫:
Console.WriteLine ("Hello there");
我們可以寫完全限定名稱,如下:
System.Console.WriteLine("Hello there");
您也可以使用 using 命名空間指令,這樣在使用的時候就不用在前面加上命名空間名稱。該指令告訴編譯器隨後的程式碼使用了指定命名空間中的名稱。下面的程式碼延時了命名空間的應用。
讓我們使用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(); } }
當上面的程式碼被編譯和執行時,它會產生下列結果:
Inside first_space Inside second_space
嵌套命名空間
命名空間可以被嵌套,即您命名空間可以被嵌套可以在一個命名空間內定義另一個命名空間,如下所示:
namespace namespace_name1 { // 代码声明 namespace namespace_name2 { // 代码声明 } }
您可以使用點(.)運算子存取巢狀的命名空間的成員,如下所示:
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(); } }
當上面的程式碼被編譯和執行時,它會產生下列結果:
Inside first_space Inside second_space
以上就是【c#教程】C# 命名空間(Namespace)的內容,更多相關內容請關注PHP中文網(www.php.cn)!