好的,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# 的Explicitit Interface Implementation的等价物,我想我会在接口中实现它(因为这在 F# 中是合法的)——它只包含一些类型转换。
我的理解是,F# 中的所有接口实现都是显式的,在类中,但是一旦一个接口从另一个接口继承,那么你只能(显式地)实现那个接口。(所以我的 Board 课程只实现了 I Board)