C#中使用命名空間來分割不同的層級,在不同的層級中可以使用相同的類聲明和變量聲明。在程序中使用不同命名空間的下的相同名稱的類時:可以用一下這幾種方法進行限定:
1.使用完全限定名
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.命名空間別名:給不同的命名空間取個別名
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限定名進行選擇
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.外部別名
使用外部別名的話需要先在引用的特性那里設置別名為:ExtenNsp
然后在代碼中使用
extern alias ExtenNsp;using System;namespace NamespaceExample{ class Program { static void Main(string[] args) { Console.WriteLine(typeof(ExtenNsp::System.Data.DataRowComparer)); } }}
新聞熱點
疑難解答