我確定這是一個簡單的問題,但是在處理沒有使用using語句的IDisposable
對象時我該怎麼辦?在沒有使用語句的情況下處理IDisposable對象
-4
A
回答
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
相關問題
- 1. IDisposable - 在沒有外部引用的情況下在類中處理什麼?
- 2. 在沒有模糊處理的情況下對Android使用Proguard
- 3. 在沒有if語句的情況下在Powershell中使用OR?
- 4. 如何在沒有嵌套IF ELSE語句的情況下處理Android onSharedPreferenceChanged
- 5. 在沒有事件處理程序的情況下使用document.on
- 6. 是否有可能在沒有請求對象的情況下在Django中使用上下文處理器?
- 7. 在沒有請求對象的情況下使用django login()
- 8. 在沒有CA警告的情況下執行Inhertited IDisposable模式
- 9. 如何在使用MVC/MCP時在沒有switch語句的情況下處理派生類?
- 10. 在另一個IDisposable中處理IDisposables「使用」語句
- 11. Switch語句。使用默認情況下
- 12. 有條件的情況下WHEN語句
- 13. 在沒有導入語句的情況下在scala中使用java函數
- 14. 在沒有「下一個」語句的情況下在awk中處理多個文件
- 15. 默認情況下,PDO是否總是使用模擬的預處理語句?
- 16. 在有或沒有使用Hive的情況下處理Amazon EMR中的日誌
- 17. 添加情況下Yii的SQL命令對象語句
- 18. 如何在沒有繼承句柄的情況下進行分支處理?
- 19. 如何在沒有窗口句柄的情況下使用RegisterDeviceNotification?
- 20. 如何在錯誤情況下處理對象銷燬與非錯誤情況
- 21. 在沒有getopts的情況下處理shell腳本的標誌
- 22. 在沒有VISIO的情況下處理VSD中的形狀
- 23. 如何在不使用不同的預處理語句的情況下處理NULL和常規值?
- 24. 處理空的情況下
- 25. 在sqlalchemy的情況下選擇語句
- 26. 在沒有'switch'/'if'語句的情況下處理具有「複雜」條件的策略
- 27. 靜態類型語言如何在沒有泛型的情況下處理?
- 28. 在沒有連接字符串的情況下處理項目
- 29. 在沒有模型的情況下處理參數
- 30. 在沒有mysqli的情況下處理MySQL交易
yourObject.Dispose(); < - 只需在離開正在使用的方法之前補充一下。 – Falgantil 2015-02-23 13:23:23
可能是因爲這是一個通過閱讀第一個結果來回答的問題,當Google搜索'c#使用' – Falgantil 2015-02-23 13:25:49
_我應該在什麼時候做... ... - 添加一個'using(){}'語句?問題不是很清楚或完整。請詳細說明什麼和爲什麼。 – 2015-02-23 13:26:24