IDisposableインターフェイスを実装するクラスをF#で作成しました。クラスは正しくクリーンアップされ、useキーワードはDisposeメソッドにアクセスできます。Disposeメソッドを明示的に呼び出す必要があり、以下の例では呼び出せない2番目のユースケースがあります。クラスでDiposeメソッドを使用できないように見えます。
open System
type Foo() = class
do
()
interface IDisposable with
member x.Dispose() =
printfn "Disposing"
end
let test() =
// This usage is ok, and correctly runs Dispose()
use f = new Foo()
let f2 = new Foo()
// The Dispose method isn't available and this code is not valid
// "The field , constructor or member Dispose is not defined."
f2.Dispose()
test()