偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

C# using語(yǔ)句使用心得總結(jié)

開(kāi)發(fā) 后端
這里是關(guān)于C# using語(yǔ)句使用心得總結(jié),using關(guān)鍵字是大家用的比較多的,一般都是用在為命名空間創(chuàng)建別名上。希望本文能對(duì)大家有所幫助。

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

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

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

2、作為C# using語(yǔ)句,用于定義一個(gè)范圍,在此范圍的末尾將釋放對(duì)象。請(qǐng)參見(jiàn)[using 語(yǔ)句]。

其中,第1點(diǎn)就是我們所熟悉using的使用方法,而第二種C# using語(yǔ)句方法我們就比較少用了,它常見(jiàn)于非托管資源(也就是在C++編程里面可能碰到的句柄和設(shè)備上下文),這些資源使用完畢后,是必須釋放的。在C#里面,由于完全的面向?qū)ο缶幊蹋@些資源類(lèi)型都實(shí)現(xiàn)了IDisposable接口,因此會(huì)使用在捕獲異常try...catch語(yǔ)句的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,從而保證釋放資源。(請(qǐng)注意,使用額外的大括號(hào)為對(duì)象創(chuàng)建有效的范圍而此時(shí)如果使用using語(yǔ)句,同樣能夠獲得相同的結(jié)果,代碼如下:

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

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

同時(shí)還要注意的一點(diǎn)是:

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

  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();  

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

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

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

【編輯推薦】

  1. C#創(chuàng)建Windows服務(wù)詳細(xì)介紹
  2. C#動(dòng)態(tài)編譯簡(jiǎn)單剖析
  3. C#靜態(tài)字段與實(shí)例字段分析
  4. C#匿名方法詳細(xì)剖析
  5. C#命名屬性簡(jiǎn)單描述
責(zé)任編輯:彭凡 來(lái)源: 博客園
相關(guān)推薦

2010-02-01 10:15:07

C++ TinyXML

2009-08-31 10:00:07

C#靜態(tài)變量

2009-08-24 17:27:05

C#泛型應(yīng)用

2011-01-19 14:57:09

Thunderbird

2011-03-15 11:05:03

2009-06-19 11:09:27

Spring AOP

2010-08-06 11:12:38

FlexCairngorm框架

2010-06-01 13:42:37

TortoiseSVN

2011-01-07 11:14:17

Nginx負(fù)載均衡負(fù)載均衡

2011-05-23 13:27:53

2009-08-25 16:49:44

C#使用if語(yǔ)句

2011-09-01 10:16:43

JQuery Mobi

2024-04-16 12:13:07

usingC#開(kāi)發(fā)

2010-03-02 17:33:49

Android 2.0

2009-06-26 16:12:08

ThickboxjQuery

2009-08-26 14:01:33

C# using用法

2009-08-25 16:56:52

C#使用塊來(lái)分組語(yǔ)句

2009-08-11 11:42:50

Ruby使用心得

2009-08-25 16:32:24

C#語(yǔ)言

2009-08-26 17:22:09

C#語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)