F#类属性vs显式字段

时间:2011-05-19 05:43:08

标签: .net f#

在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

1 个答案:

答案 0 :(得分:5)

前两种形式有一些有限的用途,如果您需要非常明确地阐述类中字段的布局方式,它们就很有用。例如,您可以将类型传递给非托管代码,该代码需要特定数量的字段或特定顺序,或者您可以将其传递给使用字段反射的API。