次のように、IEvent の上に追加のメソッドを必要とするインターフェイスを作成しようとしています。
type Varying<'t> =
abstract member Get : unit -> 't
abstract member Set : 't -> unit
abstract member AddHandler : Handler<'t> -> unit
abstract member RemoveHandler : Handler<'t> -> unit
member v.Add(f) = v.AddHandler(new Handler<_>(fun _ x -> f x))
interface IEvent<'t> with
member c.AddHandler(h) = c.AddHandler(h)
member c.RemoveHandler(h) = c.RemoveHandler(h)
member c.Add(f) = c.Add(f)
Get
&Set
メソッドを追加しました。問題は、F# コンパイラが抽象メンバーの実装を要求していることです。
「抽象メンバー Varying.AddHandler : Handler<'t> -> unit」の実装は指定されていません
しかし、このタイプのポイントは、メンバーが抽象的であることです。私は何を間違っていますか?