【发布时间】:2010-09-01 15:04:31
【问题描述】:
我是 C# 的新手,如果这是一个明显的问题,我深表歉意。
在MSDN Dispose example中,他们定义的Dispose方法是非虚拟的。这是为什么?这对我来说似乎很奇怪 - 我希望拥有自己的非托管资源的 IDisposable 的子类只会覆盖 Dispose 并在自己的方法底部调用 base.Dispose()。
谢谢!
【问题讨论】:
-
@Dour:实际上,这个问题(及其答案)并没有解决
interface中缺少virtual关键字的方法问题。 -
@Robert,不是接口中的方法缺少 virtual 关键字。 overloaded Dispose(bool) 丢失了,这就是需要 virtual 关键字的那个。另一方面,将方法签名放在接口中几乎会强制方法公开(或者当我试图与之相反时似乎如此),并且重载 Dispose(bool) 在完整的 Finalize 中受到保护/Dispose 模式。
标签: c# .net dispose idisposable