好的,我B从基类派生一个类型A。
A实现IDisposable显式,但我必须在 中进行额外的清理B,所以我IDisposable在 中实现B:
interface IDisposable with
member i.Dispose() =
// ... additional work
base.Dispose() // <- want to do but cannot
问题是:如何从基础访问 Dispose 方法?
(base :> IDisposable).Dispose()
产生编译器错误:Unexpected symbol ':>' in expression. Expected '.' or other token.
做类似的事情
(i :> IDisposable).Dispose()
当然StackOverflowException会在运行时产生 - 那么我该怎么做呢?抱歉,以前从来没有遇到过这样的事情……