最初の実装が KO になる理由は何ですか?
type IToto =
abstract Toto : unit -> unit
{ new IToto with
member this.Toto =
fun () -> () }
{ new IToto with
member this.Toto () = () }
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 () -> () }