在F#中何时需要显式字段时,有没有人可以帮助我举例?例如,以下三个类将如何有用
type MyClass =
val a : int
val b : int
new(a0, b0) = { a = a0; b = b0; }
或
type MyClass() =
[<DefaultValue>] val mutable a: int
[<DefaultValue>] val mutable b: int
member this.Setab( a0: int, b0: int) =
a<- a0
b<- b0
与
比较type MyClass(a0:int,b0:int) =
member x.a = a0
member x.b = b0
我只能理解最后一堂课。感谢。
编辑:以下问题是前两个概念必要的示例:Order of fields in a type for FileHelpers
答案 0 :(得分:5)
前两种形式有一些有限的用途,如果您需要非常明确地阐述类中字段的布局方式,它们就很有用。例如,您可以将类型传递给非托管代码,该代码需要特定数量的字段或特定顺序,或者您可以将其传递给使用字段反射的API。