把一個類型放在命名空間中,可以有效地給這個類型指定一個較長的名稱,該名稱包括類型的命名空間,後面是句點(.)和類的名稱。
也可以在命名空間中嵌套其他命名空間,為類型創造層次結構。
每個命名空間名都由它所在的命名空間的名稱組成,這些名稱用句點分隔開。可以組織自己的命名空間定義中的命名空間,上面的代碼也可以寫為:
注意不允許在另一個嵌套的命名空間中聲明多部分的命名空間。它與程序集無關。同一個程序集中可以有不同的命名空間,也可以在不同的程序集中定義同一個命名空間的類型。
using語句
顯然命名空間相當長,鍵入起來很煩瑣,用這種方式指定某個類也是沒必要的,因為C#允許簡寫類的全名。在文件的頂部列出類的命名空間,前面加上using關鍵字,在文件的其他地方,就可以使用其類型名稱來引用命名空間中的類型了:
所有的C#源代碼都以語句using System;開頭,因為Microsoft提供的許多有用的類型都包含在System命名空間中。
如果using指令引用的兩個命名空間包含同名的類,就必須使用完整的名稱(或者至少較長的名稱),確保編譯器知道訪問哪個類型。
要注意,using語句在這些文件之間並沒有建立物理鏈接。
命名空間的別名
using關鍵字的另一個用途是給類和命名空間指定別名。如果命名空間的名稱非常長,又要在代碼中使用多次,但不希望該命名空間的名稱包含在using指令中,就可以給該命名空間指定一個別名:
下面的例子給ling.note.one命名空間指定ling別名,並使用這個別名實例化了一個test對象,這個對象是在該命名空間中定義的。注意命名空間別名的修飾符是::。