1.using指令。using + 命名空間名字,這樣可以在程式中直接用指令空間中的類型,而不必指定類型的詳細命名空間,類似于Java的import,這個功能也是最常用的,幾乎每個cs的程式都會用到。
例如:using System; 一般都會出現在*.cs中。
2.using别名。using + 别名 = 包括詳細命名空間資訊的具體的類型。
這種做法有個好處就是當同一個cs引用了兩個不同的命名空間,但兩個命名空間都包括了一個相同名字的類型的時候。當需要用到這個類型的時候,就每個地方都要用詳細命名空間的辦法來區分這些相同名字的類型。而用别名的方法會更簡潔,用到哪個類就給哪個類做别名聲明就可以了。注意:并不是說兩個名字重複,給其中一個用了别名,另外一個就不需要用别名了,如果兩個都要使用,則兩個都需要用using來定義别名的。
例如:

using System;

using aClass = NameSpace1.MyClass;

using bClass = NameSpace2.MyClass;


namespace NameSpace1
{
public class MyClass
{
public override string ToString()
{
return "You are in NameSpace1.MyClass";
}
}
}


namespace NameSpace2
class MyClass
return "You are in NameSpace2.MyClass";


namespace testUsing
using NameSpace1;
using NameSpace2;
/// <summary>
/// Class1 的摘要說明。
/// </summary>
class Class1
/// <summary>
/// 應用程式的主入口點。
/// </summary>
[STAThread]
static void Main(string[] args)
//
// TODO: 在此處添加代碼以啟動應用程式
aClass my1 = new aClass();
Console.WriteLine(my1);
bClass my2 = new bClass();
Console.WriteLine(my2);
Console.WriteLine("Press any key
");
Console.Read();

3.using語句,定義一個範圍,在範圍結束時處理對象。
場景:
當在某個代碼段中使用了類的執行個體,而希望無論因為什麼原因,隻要離開了這個代碼段就自動調用這個類執行個體的Dispose。
要達到這樣的目的,用try...catch來捕捉異常也是可以的,但用using也很友善。

using (Class1 cls1 = new Class1(), cls2 = new Class1())
// the code using cls1, cls2
} // call the Dispose on cls1 and cls2


這裡觸發cls1和cls2的Dispose條件是到達using語句末尾或者中途引發了異常并且控制離開了語句塊。
http://www.cnblogs.com/windsails/archive/2004/09/12/42444.html
學習交流群:364976091