【问题标题】:Handling IDisposable object without the using statement不使用 using 语句处理 IDisposable 对象
【发布时间】:2015-02-23 13:23:01
【问题描述】:

我确信这是一个简单的问题,但是在没有 using 语句的情况下处理 IDisposable 对象时我应该怎么做?

【问题讨论】:

  • yourObject.Dispose();
  • 可能是因为在谷歌搜索'c# using'时通过阅读第一个结果来回答这个问题
  • 当...时我应该做什么 - 添加using(){} 声明?这个问题不是很清楚或不完整。请详细说明原因和原因。
  • 欢迎最近的用户到 SO。你做了什么研究?你试过什么?
  • 在 google 和 stackoverflow 上都搜索了这个 specific 问题,我决定在这里提出问题以获得更多支持,找到任何东西。显然我不知道如何在这里提问

标签: c# idisposable using-statement


【解决方案1】:

using 构造所做的所有事情都是调用 Dispose()IDisposable 要求您实施。

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

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

做:

IDisposable something = new SomeDisposableClass();

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

注意try..finally 的使用,这将确保即使出现异常也会调用Dispose()

【讨论】:

  • 您的第二个样本不是异常安全的。
猜你喜欢
  • 2016-10-24
  • 1970-01-01
  • 2018-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-20
  • 2010-11-05
相关资源
最近更新 更多