using

using

C# 語言中定義一個範圍
using是C# 語言中定義一個範圍,将在此範圍之外釋放一個或多個對象。[1]
    中文名: 外文名: 别名: 名稱:using 屬于:C# 語言 含義:釋放一個或多個對象

C# 語言參考

作為語句

用于定義一個範圍,在此範圍的末尾将釋放對象

C#通過.NETFramework公共語言運行庫(CLR)自動釋放用于存儲不再需要的對象的内存。内存的釋放具有不确定性;一旦CLR決定執行垃圾回收,就會釋放内存。但是,通常最好盡快釋放諸如文件句柄和網絡連接這樣的有限資源。

using語句允許程序員指定使用資源的對象應當何時釋放資源。為using語句提供的對象必須實現IDisposable接口。此接口提供了Dispose方法,該方法将釋放此對象的資源。

可以在到達using語句的末尾時,或者在該語句結束之前引發了異常并且控制權離開語句塊時,退出using語句。

作為指令

用于為命名空間創建别名或導入其他命名空間中定義的類型

①.允許在命名空間中使用類型,這樣,您就不必在該命名空間中限定某個類型的使用:

using System.Text;

②.為命名空間或類型創建别名。

using Project = PC.MyCompany.Project;

using 指令的範圍限制為包含它的文件。

創建using别名,以便更易于将标識符限定到命名空間或類型。

創建using指令,以便在命名空間中使用類型而不必指定命名空間。using 指令不為您提供對嵌套在指定命名空間中的任何命名空間的訪問。

命名空間分為兩類:用戶定義的命名空間和系統定義的命名空間。用戶定義的命名空間是在代碼中定義的命名空間。若要查看系統定義的命名空間的列表。

深入讨論

引言

在.NET大家庭中,有不少的關鍵字承擔了多種角色,例如new關鍵字就身兼數職,除了能夠創建對象,在繼承體系中隐藏基類成員,還在泛型聲明中約束可能用作類型參數的參數,在詳細讨論using的多重身份的基礎上來了解.NET在語言機制上的簡便與深邃。

那麼,using的多重身份都體現在哪些方面呢,我們先一睹為快吧:

· 引入命名空間

· 創建别名

· 強制資源清理

引入命名空間

using作為引入命名空間指令的用法規則為:

using Namespace;

在.NET程序中,最常見的代碼莫過于在程序文件的開頭引入System命名空間,其原因在于System命名空間中封裝了很多最基本最常用的操作,下面的代碼對我們來說最為熟悉不過:

using System;

這樣,我們在程序中就可以直接使用命名空間中的類型,而不必指定詳細的類型名稱。using指令可以訪問嵌套命名空間。

關于:命名空間

命名空間是.NET程序在邏輯上的組織結構,而并非實際的物理結構,是一種避免類名沖突的方法,用于将不同的數據類型組合劃分的方式。例如,在.NET中很多的基本類型都位于System命名空間,數據操作類型位于System.Data命名空間。

誤區

using類似于Java語言的import指令,都是引入命名空間(Java中稱作包)這種邏輯結構;而不同于C語言中的#include指令,用于引入實際的類庫,

using引入命名空間,并不等于編譯器編譯時加載該命名空間所在的程序集,程序集的加載決定于程序中對該程序集是否存在調用操作,如果代碼中不存在任何調用操作則編譯器将不會加載using引入命名空間所在程序集。因此,在源文件開頭,引入多個命名空間,并非加載多個程序集,不會造成“過度引用”的弊端。 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對象,則可以是這樣,

private static MSWord.Application ooo = new MSWord.Application();

同樣,也可以創建類型的别名,用法為:

而創建别名的另一個重要的原因在于同一cs文件中引入的不同命名空間中包括了相同名稱的類型,為了避免出現名稱沖突可以通過設定别名來解決。

以using創建别名,有效的解決了這種可能的命名沖突,盡管我們可以通過類型全名稱來加以區分,但是這顯然不是最佳的解決方案,using使得這一問題迎刃而解,不費絲毫功夫,同時在編碼規範上看來也更加的符合編碼要求。

結論

一個簡單的關鍵字,多種不同的應用場合。本文從比較全面的角度,诠釋了using關鍵字在.NET中的多種用法,值得指出的是這種用法并非實現于.NET的所有高級語言,本文的情況主要局限在C#中。

上一篇:情婦第二季

下一篇:foreach

相關詞條

相關搜索

其它詞條