日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C# using語句使用心得總結(jié)

C# using語句用于定義一個范圍,在此范圍的末尾將釋放對象,這樣的用法比較少見,常見于非托管資源。這些資源在使用后,就必須徹底釋放。

公司主營業(yè)務(wù):網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出響水免費做網(wǎng)站回饋大家。

學習過C#的人都知道,using是關(guān)鍵字。在MSDN里面一查C#參考(C# Reference),using關(guān)鍵字就會有兩個主要用途:

1、作為指令,用于為命名空間創(chuàng)建別名或?qū)肫渌臻g中定義的類型。請參見[using 指令]。

2、作為C# using語句,用于定義一個范圍,在此范圍的末尾將釋放對象。請參見[using 語句]。

其中,第1點就是我們所熟悉using的使用方法,而第二種C# using語句方法我們就比較少用了,它常見于非托管資源(也就是在C++編程里面可能碰到的句柄和設(shè)備上下文),這些資源使用完畢后,是必須釋放的。在C#里面,由于完全的面向?qū)ο缶幊蹋@些資源類型都實現(xiàn)了IDisposable接口,因此會使用在捕獲異常try...catch語句的finally塊中釋放資源,代碼如下:

 
 
 
  1. {  
  2.   Font font1 = new Font("Arial", 10.0f);  
  3.   try  
  4.   {  
  5.     byte charset = font1.GdiCharSet;  
  6.   }  
  7.   finally  
  8.   {  
  9.     if (font1 != null)  
  10.       ((IDisposable)font1).Dispose();  
  11.   }  

這樣確保調(diào)用Dispose,從而保證釋放資源。(請注意,使用額外的大括號為對象創(chuàng)建有效的范圍而此時如果使用using語句,同樣能夠獲得相同的結(jié)果,代碼如下:

 
 
 
  1. using (Font font3 = new Font("Arial", 10.0f), font4 = new Font("Arial", 10.0f))  
  2. {  
  3.     // Use font3 and font4.  

using語句按照正確的方式調(diào)用對象上的Dispose方法,并(在您按照前面所示方式使用它時)會導致在調(diào)用 Dispose 時對象自身處于范圍之外。在using塊中,對象是只讀的并且無法進行修改或重新分配。

同時還要注意的一點是:

按照規(guī)則,當使用IDisposable對象時,應(yīng)在using語句中聲明和實例化此對象。雖然可以在using語句外實例化資源對象,代碼如下:

 
 
 
  1. Font font2 = new Font("Arial", 10.0f);  
  2. using (font2) // not recommended  
  3. {  
  4.     // use font2  
  5. }  
  6. // font2 is still in scope  
  7. // but the method call throws an exception  
  8. float f = font2.GetHeight();  

在這種情況下,該對象將在控制權(quán)離開 using 塊之后保持在范圍內(nèi),即使它可能將不再具有對其非托管資源的訪問權(quán)也是如此。換句話說,再也不能完全初始化該對象。如果試圖在 using 塊外部使用該對象,則可能導致引發(fā)異常,如上述代碼段3中的font2.GetHeight()調(diào)用而產(chǎn)生異常。由于這個原因,通常最好是在 using 語句中實例化該對象并將其范圍限制在 using 塊中。

在這一點上,如果再使用ildasm工具一查,就會看到代碼段1和代碼段2生成的代碼幾乎是完全一樣的,而這樣使用使用using語句的方式更加簡潔、方便。

本文來自liput的博客園文章《C# using指令 心得總結(jié)》

【編輯推薦】

  1. C#創(chuàng)建Windows服務(wù)詳細介紹
  2. C#動態(tài)編譯簡單剖析
  3. C#靜態(tài)字段與實例字段分析
  4. C#匿名方法詳細剖析
  5. C#命名屬性簡單描述

網(wǎng)站名稱:C# using語句使用心得總結(jié)
新聞來源:http://www.dlmjj.cn/article/dpjgcoh.html