【发布时间】:2012-03-23 00:08:50
【问题描述】:
好的,我从基类 A 派生了一个类型 B。
A 实现 IDisposable 显式但我必须在 B 中进行额外的清理,所以我在 B 中实现 IDisposable:
interface IDisposable with
member i.Dispose() =
// ... additional work
base.Dispose() // <- want to do but cannot
问题是:如何从 base 访问 Dispose 方法?
(base :> IDisposable).Dispose()
产生编译器错误:Unexpected symbol ':>' in expression. Expected '.' or other token.
做类似的事情
(i :> IDisposable).Dispose()
当然会在运行时产生StackOverflowException - 那么我该怎么做呢?抱歉,以前从未遇到过这样的事情...
【问题讨论】:
标签: inheritance f# explicit-interface