C#中使用命名空間來分割不一樣的層級,在不一樣的層級中能夠使用相同的類聲明和變量聲明。在程序中使用不一樣命名空間的下的相同名稱的類時:能夠用一下這幾種方法進行限定:spa
1.使用徹底限定名code
using System;namespace NamespaceExample { class Test { } namespace InnerNamespace { class Test { } } class Program { static void Main(string[] args) { Console.WriteLine(typeof(NamespaceExample.Test)); Console.WriteLine(typeof(InnerNamespace.Test)); } } }
2.命名空間別名:給不一樣的命名空間取個別名orm
using System; using WinFroms = System.Windows.Forms; using WebForms = System.Web.UI.WebControls; namespace NamespaceExample { class Program { static void Main(string[] args) { Console.WriteLine(typeof(WinFroms.Button)); Console.WriteLine(typeof(WebForms.Button));
Console.ReadKey(); } } }
3.全局命名空間命名:當一個類不存在人和命名空間時,能夠是用global限定名進行選擇blog
using System; class Test { } namespace NamespaceExample { class Test { } class Program { static void Main(string[] args) { //不使用限定名向上搜索匹配的命名空間,查找不到會輸出錯誤 Console.WriteLine(typeof(Test)); Console.WriteLine(typeof(global::Test)); } } }
4.外部別名
使用外部別名的話須要先在引用的特性那裏設置別名爲:ExtenNspstring
而後在代碼中使用it
extern alias ExtenNsp; using System; namespace NamespaceExample { class Program { static void Main(string[] args) { Console.WriteLine(typeof(ExtenNsp::System.Data.DataRowComparer)); } } }