不使用 using 语句处理 IDisposable 对象

Handling IDisposable object without the using statement

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

所有 using 构造所做的就是调用 Dispose()IDisposable 要求您实现。

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

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

做:

IDisposable something = new SomeDisposableClass();

try {
   ...
} finally {    
   something?.Dispose();
}

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