3

使用计算表达式时,第一个定义有效,但第二个定义不适用于零。

这有什么区别:

member o.Zero() = 3

还有这个:

member o.Zero = fun() -> 3

第一个评估为unit -> int,第二个评估为(unit -> int)。有什么不同?

4

1 回答 1

5

如果它们是 let-bounds,则没有区别。但是,在类定义中,第一个o.Zero是方法,第二个o.Zero是属性。

计算表达式需要一个名为Zero;的方法 这就是为什么当您提供具有相同名称的属性时它不起作用的原因。

于 2012-03-29T16:22:30.053 回答