1. 程式人生 > >using在C#中的強制資源清理的用法,何時用using,何時用try

using在C#中的強制資源清理的用法,何時用using,何時用try

using 在C#中除了引用名稱空間和為名稱空間建立別名外,它還可以用做強制資源清理,方法如下:

 

上面程式碼完全等效於

 

 實際上,我們用using()並編譯後,編譯器生成的也是try{}finally{}程式碼,生成的程式碼中需要執行disponse(),因此在using()中建立的物件必需實現Idisponse接可,不然是無法通過編譯的。

既然瞭解了using()的真相,我們應該知道什麼時候用using()了吧。為也再進一步瞭解我們何時用using,何時用try,我們看看下面兩段程式碼(高手可以跳過啦!!)

這段和上面的第一段程式碼相同,由於cmd的結果已經被儲存到object val裡,所以然後釋放connection對結果並不會有任何影響。

再來看看下一再using的程式碼

這時就不能再用using 自動釋放connection了,因為rdr的操作需要開啟資料庫連線的,如果自動釋放connection連線會導致rdr無法操作。何時用using可以用以下規則來確定:

1、無論程式碼成功與否都釋放物件時;

2、物件實現Idisponse介面;

3、只有一個物件需要釋放。

見至此結束!希望對一些程式設計師有望,如用有不正確的地方謝謝您的指點!