如何在FSharp的成员方法中直接使用构造函数中的此参数?

王凯越*_*ang 1 .net oop f# functional-programming .net-core

FSharp的“删除循环依赖性”中给出了此示例(反示例),以获取乐趣和收益。https://fsharpforfunandprofit.com/posts/removing-cyclic-dependencies/

type Customer(name, observer:CustomerObserver) = 
        let mutable name = name
        member this.Name 
            with get() = name
            and set(value) = 
                name <- value
                observer.OnNameChanged(this)

and CustomerObserver() = 
    member this.OnNameChanged(c:Customer) =     
        printfn "Customer name changed to '%s' " c.Name
Run Code Online (Sandbox Code Playgroud)

见参数observerCustomer类。它不会在类型中声明为字段或属性。之后怎么样了?

Dev*_*iss 5

在F#中,构造函数的args贯穿整个类声明。这与C#和VB不同。

它在此处文档中提到。

在整个类声明中,主构造函数的参数在范围内。