1. 程式人生 > >C#裡using的作用------釋放資源

C#裡using的作用------釋放資源

很高興今天看到一個可以拿出來分享的知識點,那就是using的使用。

其實關於using的作用,我想大家最多的用在引入名稱空間。:)其實我在這之前也跟大家一樣,不過今天在看一個小例子後,則讓我產生了疑問。好拉,我先把程式碼附上吧。

不知道上面的程式有沒有一處讓你比較困惑的呢,好拉,我就不賣關子了,我不懂的那一處如下:

using (StreamReader sr = new StreamReader("TestFile.txt"))

{...}

一開始我以為是引入名稱空間什麼的,不過帶著懷疑的態度,我到Q群裡提出我自己的疑問。好在在他們的幫助下,讓我糾正了我之前的錯誤想法。其實我們在連線資料庫的時候也經常會使用到using的語法,類似下面這句:
using (SqlConnection conn =new SqlConnection(source))
{
//code
}

千萬不要以為任何地方的例項化都可以這樣使用在using塊裡的哦,一般是在需要自動釋放資源的地方才會用到

。其實說需要自動釋放資源,可能大家也不是很理解。這樣說吧,你想要能這樣使用using塊的話,你需要保證滿足下面一點:

(1)此類實現了介面IDisposable(這個介面只有一個方法void Dispose()),當這個類在using中例項化的時候,using程式碼塊結束時會自動呼叫這個類中實現了介面IDisposable的Dispose()方法。Dispose()方法中常用來做些釋放資源的動作

看看下面的一個簡單的例子:

這裡輸出的結果是:

Disposable is open!
Disposable is close!
Disposable is none!

好拉,今天的執筆就到此為止,謝謝大家!