【发布时间】:2011-05-25 06:06:03
【问题描述】:
我在我的类中实现了 Finalize 和 Dispose,我在我的父类中实现了 IDisposable 并在我的子类中覆盖了 Dispose(bool) 重载。我不确定
- 是否使用重复的 isDisposed 变量(因为它已经存在于基类中)?
- 是否也在子类中实现终结器?
这两件事都在此处给出的示例中完成 -
而这篇 MSDN 文章中的示例没有这两个 - http://msdn.microsoft.com/en-us/library/b1yfkh5e.aspx
而 MSDN 中的这个例子并不完整 - http://msdn.microsoft.com/en-us/library/ms182330.aspx
【问题讨论】:
-
@Øyvind Bråthen:它是相关的,但在继承的情况下没有讨论这种模式。
-
顺便说一句,我注意到这个问题被 wpf 标签标记,但是基于 WPF 的控件通常不需要实现 IDisposable,因为它们本身并不拥有资源,例如作为 Windows 窗体控件的专用 HWND做。
-
@jpierson:我同意,但我在我的 WPF 应用程序中实现了这个,所以标记了它,以防 WPF 有特定/新的东西。
-
我不确定为什么这个问题会获得“关闭”选票!我仍然不清楚这两种方法中哪一种是正确的,这里给出了相互矛盾的答案,而且没有一个清楚地提到每种方法的优缺点?如果您能在给出关闭投票后发表评论,我将不胜感激。
标签: c# .net wpf idisposable finalizer