繁体   English   中英

F#类属性与显式字段

[英]F# class property vs explicit fields

谁能帮我举例说明何时在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

我只能听最后一堂课。 谢谢。

编辑:下面的问题是一个示例,前两个概念是必需的: FileHelpers类型中的字段顺序

前两种形式的用途有限,如果您需要非常明确地说明类中字段的布局方式,则它们很有用。 例如,您可能将类型传递给非托管代码,该代码需要以某种顺序排列特定数量的字段,或者您可以将其传递给在字段上使用反射的api。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM