我确定这是一个简单的问题,但是在处理没有使用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