using的用途和使用技巧.
1、 引用命名空間
2、 為命名空間或類型創建別名
3、 使用using語句
1、 引用命名空間,這樣可以在程序中引用命名空間的類型而不必指定詳細的命名空間.
a) 比如在程序中常用的using System.Text;
b) 引用命名空間,並不等於編譯器編譯時加載該命名空間所在的程序集,程序集的加載決定於程序中對該程序集是否存在調用操作,如果代碼中不存在任何調用操作則編譯器將不會加載using引入命名空間所在空間的程序集.因此,在源文件開頭,引入多個命名空間,並非加載多個程序集,不會造成’過度引用’的弊端
2、 為命名空間或類型創建別名
創建別名的原因在於同一個文件中引入不同的命名空間中包括了相同名稱的類型。為了避免出現名稱沖突,可以通過設定別名來解決.
例:using SGPoint = ShapMap.Geometries.Point
Using SGPoint = System.Drawing.Point
其實也可以通過類型全名稱來加以區分,但是最佳解決方案還是使用using
3、 using 語句
using語句允許程序員指定使用資源的對象應當何時釋放資源.using語句中使用的對象必須實現IDisposable接口.此接口提供了Dispose方法,該方法將釋放此對象的資源
使用規則:
a) using語句只能用於實現了IDisposable接口的類型,禁止為不支持IDisposable接口類型使用using語句,否則會出現編譯錯誤
b) using語句適用於清理單個非托管資源的情況,而多個非托管對象的清理最好以try-finaly來實現,因為嵌套using語句可能存在隱藏的Bug.內層using塊引發異常時,將不能釋放外層using塊的對象資源
using實質:
在程序編譯階段,編譯器會自動將using語句生成try-finally語句,並在finally塊中調用對象的Dispose方法,來清理資源.所以,using語句等效於try-finally語句