给定一个 F# 类型:
type Foo() =
member this.Prop with get() = ()
interface IDisposable with
member this.Dispose() = ()
在C#中,我创建了对象,但无法调用Dispose()
:
var x = new Foo();
x.Dispose(); // compile error, x does not contain a definition of Dispose
然而,我可以写成:
((IDisposable)x).Dispose(); // works, but I don't like the cast
有没有办法在C#中避免强制转换?这是否与F#不自动允许您从F#中调用.Dispose()
的方式有关,以处理Foo
类型?