【发布时间】:2012-04-13 07:54:50
【问题描述】:
使用计算表达式时,第一个定义有效,但第二个定义无效。
这有什么区别:
member o.Zero() = 3
还有这个:
member o.Zero = fun() -> 3
第一个计算为unit -> int,第二个计算为(unit -> int)。有什么区别?
【问题讨论】:
使用计算表达式时,第一个定义有效,但第二个定义无效。
这有什么区别:
member o.Zero() = 3
还有这个:
member o.Zero = fun() -> 3
第一个计算为unit -> int,第二个计算为(unit -> int)。有什么区别?
【问题讨论】:
如果它们是 let-bounds,则没有区别。但是,在类定义中,第一个 o.Zero 是一个方法,而第二个 o.Zero 是一个属性。
计算表达式需要一个名为Zero的方法;这就是为什么当您提供具有相同名称的属性时它不起作用的原因。
【讨论】: