当我想要向上base转换到适当的接口类型(即A)时,我得到一个解析错误,这样我就可以在其上调用doA().我知道base(http://cs.hubfs.net/topic/None/58670)有点特别,但到目前为止我还没能找到解决这个特定问题的方法.
有什么建议?
type A =
abstract member doA : unit -> string
type ConcreteA() =
interface A with
member this.doA() = "a"
type ExtA() =
inherit ConcreteA()
interface A with
override this.doA() = "ex" // + (base :> A).doA() -> parse error (unexpected symbol ':>' in expression)
((new ExtA()) :> A).doA() // output: ex
Run Code Online (Sandbox Code Playgroud)
工作C#等价:
public interface A
{
string doA();
}
public class ConcreteA : A {
public virtual string doA() …Run Code Online (Sandbox Code Playgroud)