2015-02-23 155 views
-4

我確定這是一個簡單的問題,但是在處理沒有使用using語句的IDisposable對象時我該怎麼辦?在沒有使用語句的情況下處理IDisposable對象

+4

yourObject.Dispose(); < - 只需在離開正在使用的方法之前補充一下。 – Falgantil 2015-02-23 13:23:23

+2

可能是因爲這是一個通過閱讀第一個結果來回答的問題,當Google搜索'c#使用' – Falgantil 2015-02-23 13:25:49

+0

_我應該在什麼時候做... ... - 添加一個'using(){}'語句?問題不是很清楚或完整。請詳細說明什麼和爲什麼。 – 2015-02-23 13:26:24

回答

3

所有的using構造確實需要撥打Dispose()其中IDisposable要求您執行。

所以你可以把它自己,而不是:

using (IDisposable something = new SomeDisposableClass()) { 
    ... 
} 

務必:

IDisposable something = new SomeDisposableClass(); 

try { 
    ... 
} finally {  
    if (something != null) 
     something.Dispose(); 
} 

注意使用try..finally的,這將確保Dispose()被調用,即使有一個例外。

+2

你的第二個樣本不是異常安全的。 – 2015-02-23 13:28:11

+0

@HenkHolterman好點我更新了示例。 – Lloyd 2015-02-23 13:31:51

相關問題