Using
(1)引用命名空間
using做爲引入命名空間指令的用法規則爲:
using Namespace;
在.NET程序中,最多見的代碼莫過於在程序文件的開頭引入System命名空間,其緣由在於System命名空間中封裝了不少最基本最經常使用的操做,下面的代碼對咱們來講最爲熟悉不過:
using System;
這樣,咱們在程序中就能夠直接使用命名空間中的類型,而沒必要指定詳細的類型名稱。using指令能夠訪問嵌套命名空間。
關於:命名空間
命名空間是.NET程序在邏輯上的組織結構,而並不是實際的物理結構,是一種避免類名衝突的方法,用於將不一樣的數據類型組合劃分的方式。例如,在.NET中不少的基本類型都位於System命名空間,數據操做類型位於System.Data命名空間,
(2)建立命名空間別名
using爲命名空間建立別名的用法規則爲:
using alias = namespace | type;
其中namespace表示建立命名空間的別名;而type表示建立類型別名。例如,在.NET Office應用中,經常會引入Microsoft.Office.Interop.Word.dll程序集,在引入命名空間時爲了不繁瑣的類型輸入,咱們一般爲其建立別名以下:
using MSWord = Microsoft.Office.Interop.Word;
這樣,就能夠在程序中以MSWord來代替Microsoft.Office.Interop.Word前綴,若是要建立Application對象,則能夠是這樣,
並且還有一個好處就是,在一個.CS文件中引入了不一樣的命名空間可是相同的類名的時候,用別名就能夠解決這問題了。
(3)強制資源清理
用途:清理非託管資源,不受GC控制的資源。Using結束後會隱式的調用Disposable方法。
用法:
using (Class1 c = new Class1())
{
}//清理非託管不受GC控制的資源
可是當對象使用using關鍵字的時候,必須實現IDisposable接口。其實using的使用和try-catch-finaly中,在finaly代碼域調用Disposable方法效果同樣。注意Using不能使用多個不一樣的類
Class1 f = new Class1();
try
{ //執行代碼
}
catch()
{
//異常處理
}
finally
{
f.Disposable();
}
using 語句獲取一個或多個資源,執行一個語句,而後處置該資源。
using 語句:
using ( 資源獲取 ) 嵌入語句
資源獲取:
局部變量聲明
表達式
資源是實現 System.IDisposable 的類或結構,它包含名爲 Dispose 的單個無參數方法。(如:截圖2)正在使用資源的代碼能夠調用 Dispose 以指示再也不須要該資源。若是不調用 Dispose,則最終將由於垃圾回收而發生自動處置。
若是資源獲取的形式是局部變量聲明,那麼此局部變量聲明的類型必須爲System.IDisposable 或是能夠隱式轉換爲 System.IDisposable 的類型。若是資源獲取的形式是表達式,那麼此表達式必須是 System.IDisposable 或是能夠隱式轉換爲 System.IDisposable 的類型。
在資源獲取中聲明的局部變量必須是隻讀的,且必須包含一個初始值設定項。
using 語句被翻譯成三個部分:獲取、使用和處置。資源的使用隱式封閉在包含一個 finally 子句的 try語句中。此 finally 子句處置資源。若是獲取了 null 資源,則不進行對 Dispose 的調用,也不引起任何異常。
例如,下列形式的 using 語句
using (R r1 = new R()) {
r1.F();
}
徹底等效於
R r1 = new R();
try {
r1.F();
}
finally {
if (r1 != null) ((IDisposable)r1).Dispose();
}
using確保執行IDisposable接口的對象在退出塊時當即釋放,主要是爲了防止忘記關閉數據庫鏈接可能致使的.net可執行程序的各類問題。