C#的命名空間namespace有點類似Java的Packpage,命名空間可以想像成一個模組,裡面可以包入類別、列舉、結構、或是其他命名空間。我們撰寫的.NET程式都是包裝在命名空間namespace裡面,通常建置而成.dll.exe會與命名空間同名,形成一個組件變成.NET部屬單位,當然一個組件可以包含多個命名空間namespace,同個命名空間也可以拆分成多個組件,透過參考組件後,分散在不同組件中的同一個命名空間便會自己整合。另外,在一個系統中有大量類別時,很容易發生類別名稱重複的情況,透過適當namespace命名,可以幫助我們避免類別重複的問題。
在C#程式中都靠「.」來區別使用哪個命名空間的類別的方法, 「.」有「的」的意思
命名空間.類別.方法()
透過using 某個命名空間,在使用該命名空間某個類別等命名空間成員時,可以省略命名空間
命名空間可以巢狀命名命名空間.命名空間.命名空間.類別.方法()
namespace ConsoleApp
{
namespace Sample
{
namespace Test
{
}
}
}
另外也可以用逗點來分隔,以上撰寫方式與以下方式都屬同一個命名空間
namespace ConsoleApp.Sample.Test
{
}
因為C#是靠「.」區隔,使用上當命名空間發生與類別同名是不允許的。
命名空間.命名空間
命名空間.類別
我們在使用using來載入組件時,using只能載入命名空間,不能using到命名空間的類別,但是我們可以透過using,幫某個命名空間的某個類別取別名
例如:
using cs = System.Console;
namespace ConsoleAppTest
{
class Program
{
static void Main(string[] args)
{
cs.WriteLine(a);
}
}
}
而我們C#所用的變數int或byte等,其實就是System.Int32與System.Byte的別名
using有三個使用方式