第一次实施KO的原因是什么?
type IToto =
abstract Toto : unit -> unit
{ new IToto with
member this.Toto =
fun () -> () }
{ new IToto with
member this.Toto () = () }
答案 0 :(得分:6)
在编译表示中,函数类型的属性(编译为FSharpFunc<unit, unit> Toto { get; }
)与获取单位和返回单位的方法之间存在差异,编译为unit Toto()
。
第一个对象表达式实现了不同的接口:
type IToto =
abstract Toto : (unit -> unit) // Note: Parentheses around the function type!
{ new IToto with
member this.Toto =
fun () -> () }