【发布时间】:2010-09-25 05:47:09
【问题描述】:
什么时候在类上实现 IDispose 而不是析构函数?我读了this article,但我仍然没有抓住重点。
我的假设是,如果我在一个对象上实现 IDispose,我可以显式地“破坏”它,而不是等待垃圾收集器执行它。这是正确的吗?
这是否意味着我应该始终在对象上显式调用 Dispose?有哪些常见的例子?
【问题讨论】:
-
确实,您应该在每个 Disposable 对象上调用 Dispose。您可以使用
using构造轻松做到这一点。 -
啊,有道理。我一直想知道为什么“使用”语句用于文件流。我知道它与对象的范围有关,但我没有将它放在 IDisposable 接口的上下文中。
-
要记住的重要一点是终结器应该永远访问类的任何托管成员,因为这些成员可能不再是有效的引用。
标签: c# .net dispose destructor