using關鍵字在C 中的3種用法

2022-09-15 03:42:11 字數 2009 閱讀 3135

using 關鍵字有兩個主要用途:

(一).作為指令,用於為命名空間建立別名或匯入其他命名空間中定義的型別。

(二).作為語句,用於定義乙個範圍,在此範圍的末尾將釋放物件。

(一).作為指令

1、用在命名空間裡    

using + 命名空間名字,這樣可以在程式中直接用命令空間中的型別,而不必指定型別的詳細命名空間,類似於j**a的import,這個功能也是最常用的,幾乎每個cs的程式都會用到。

例如:using system; 一般都會出現在*.cs中。

2、為命名空間或型別建立別名,using + 別名 = 包括詳細命名空間資訊的具體的型別。

這種做法有個好處就是當同乙個cs引用了兩個不同的命名空間,但兩個命名空間都包括了乙個相同名字的型別的時候。當需要用到這個型別的時候,就每個地方都要用詳細命名空間的辦法來區分這些相同名字的型別。而用別名的方法會更簡潔,用到哪個類就給哪個類做別名宣告就可以了。注意:並不是說兩個名字重複,給其中乙個用了別名,另外乙個就不需要用別名了,如果兩個都要使用,則兩個都需要用using來定義別名的。

using

system;

using aclass =namespace1.myclass;

using bclass =namespace2.myclass;

namespace

namespace1

}} namespace

namespace2

}} namespace

testusing

}}

(二).作為語句

using 語句允許程式設計師指定使用資源的物件應當何時釋放資源。using 語句中使用的物件必須實現 idisposable 介面。此介面提供了 dispose 方法,該方法將釋放此物件的資源。

①可以在 using 語句之前宣告物件。

font font2 = new font("arial", 10.0f);

using (font2)

②可以在 using 語句之中宣告物件。

using (font font2 = new font("arial", 10.0f))

③可以有多個物件與 using 語句一起使用,但是必須在 using 語句內部宣告這些物件。

using (font font3=new font("arial",10.0f), font4=new font("arial",10.0f))

使用規則

①using只能用於實現了idisposable介面的型別,禁止為不支援idisposable介面的型別使用using語句,否則會出現編譯錯誤;

②using語句適用於清理單個非託管資源的情況,而多個非託管物件的清理最好以try-finnaly來實現,因為巢狀的using語句可能存在隱藏的bug。內層using塊引發異常時,將不能釋放外層using塊的物件資源;

③using語句支援初始化多個變數,但前提是這些變數的型別必須相同,例如:

using(pen p1 = new pen(brushes.black), p2 = new pen(brushes.blue))

④針對初始化多個不同型別的變數時,可以都宣告為idisposable型別,例如:

using (idisposable font = new font("verdana", 12), pen = new pen(brushes.black))

using實質

在程式編譯階段,編譯器會自動將using語句生成為try-finally語句,並在finally塊中呼叫物件的dispose方法,來清理資源。所以,using語句等效於try-finally語句,例如:

using (font f2 = new font("arial", 10, fontstyle.bold))

被編譯器翻譯為:

font f2 = new font("arial", 10, fontstyle.bold);

tryfinally

C 中using關鍵字用法

c using用法詳解 using 關鍵字有兩個主要用途 一 作為指令,用於為命名空間建立別名或匯入其他命名空間中定義的型別。二 作為語句,用於定義乙個範圍,在此範圍的末尾將釋放物件。using指令 允許在命名空間中使用型別,這樣,您就不必在該命名空間中限定某個型別的使用 using system....

C 中using關鍵字的作用

c 中using有兩種作用。1 作為指令,用於引用命名空間的,如using system.io 2 作為語句,using定義乙個範圍,在退出using之後,在此範圍末尾之後便自動釋放物件,起到了自動釋放資源的作用。如下面筆者使用streamwriter列的writeline方法先向指定文字檔案寫入資...

using關鍵字的用途

1 引用命名空間 2 為命名空間或型別建立別名 3 使用using語句 1 引用命名空間,這樣可以在程式中引用命名空間的型別而不必指定詳細的命名空間.a 比如在程式中常用的using system.text b 引用命名空間,並不等於編譯器編譯時載入該命名空間所在的程式集,程式集的載入決定於程式中對...