Ben*_*jol 7 syntax f# constructor
我有一个非一次性类,我希望能够使用Open/Close语法use,所以我试图继承它,并将Open打开到newClose to Dispose.
第二部分没问题,但我无法解决如何进行Open:
type DisposableOpenCloseClass(openargs) =
inherit OpenCloseClass()
//do this.Open(openargs) <-- compiler no like
interface IDisposable
with member this.Dispose() = this.Close()
Run Code Online (Sandbox Code Playgroud)
(参考我很久以前问过的这个问题,但我不能加入这个问题)
Bri*_*ian 10
关键是as this:
type OpenCloseClass() =
member this.Open(x) = printfn "opened %d" x
member this.Close() = printfn "closed"
open System
type DisposableOpenCloseClass(openargs) as this =
inherit OpenCloseClass()
do this.Open(openargs)
interface IDisposable
with member this.Dispose() = this.Close()
let f() =
use docc = new DisposableOpenCloseClass(42)
printfn "inside"
f()
Run Code Online (Sandbox Code Playgroud)