C#命名空間
命名空間是專為提供一種方法來保持一組名字從另一個分開。在一個命名空間中聲明的類名稱將不能與其他聲明的類名稱衝突。
定義命名空間
命名空間的定義使用namespace關鍵字後麵的命名空間名稱如下示例:
namespace namespace_name { // code declarations }
調用任何函數或變量的命名空間啟用版本,前麵加上命名空間名稱如下:
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");
也可避免命名空間使用使用namespace指令的前綴。這個指令告訴後續代碼利用名指定的命名空間中的編譯器。因此,命名空間隱含了下麵的代碼:
讓我們改前麵的例子,使用指令:
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 { // code declarations namespace namespace_name2 { // code declarations } }
可以使用點(.)操作如下訪問嵌套的命名空間的成員:
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