是否可以在F#中声明一个抽象的自动实现属性?

时间:2011-10-24 05:45:21

标签: .net f# c#-to-f#

我正在尝试执行以下F#等价物:

[C#]
public virtual int Property { get; set; }

但是这段代码(以及许多其他组合)不起作用:

[F#]
abstract member Id: int with get, set
default val this.Id = 123 with get, set

2 个答案:

答案 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

的要求
相关问题