わかりました、C# には明示的なインターフェイスの実装が あります。F# で同様のことをしたいと思います。
私はいくつかのインターフェース(およびクラス)を持っています
type IState = interface
abstract member Update : IAction-> IState
...
end
type IEnviroment = interface
abstract member Update : IAction-> IEnviroment
...
end
type IBoard =
inherit IState
inherit IEnviroment
abstract member Update : Move -> IBoard
...
[<AbstractClass>]
and Move ()=
abstract member Apply : IBoard -> IBoard
interface IAction with
override this.Cost = 1M
したがって、私が抱えている問題は、 Update が3回異なる方法で定義されていることです。したがって、C# のExplitit Interface Implementationに相当するものが必要です。インターフェイスに実装することを考えています (F# では合法であるため) - いくつかの型キャストで構成されるだけです。
私の理解では、F# でのすべてのインターフェイスの実装はクラスで明示的ですが、インターフェイスが別のインターフェイスから継承されると、そのインターフェイスのみを (明示的に) 実装します。(したがって、私の Board クラスは I Board のみを実装します)