我正在尝试执行以下F#等价物:
[C#]
public virtual int Property { get; set; }
但是这段代码(以及许多其他组合)不起作用:
[F#]
abstract member Id: int with get, set
default val this.Id = 123 with get, set
答案 0 :(得分:5)
在Dev11预览版中无法实现。
答案 1 :(得分:1)
好的,看看F#属性的MSDN documentation,抽象属性中的这一行会立即跳出来:
或者,摘要可以仅表示属性是虚拟的,并且 在这种情况下,定义必须存在于同一个类中。
他们提供的示例语法是:
type Base1() =
let mutable value = 10
abstract Property1 : int with get, set
default this.Property1 with get() = value and set(v : int) = value <- v
现在我对F#并不过分熟悉,但我猜你可以将let mutable value = 10
设置为let mutable value = 123