3

abstract override您可以在 C# 抽象类中声明方法。您可以这样做以强制派生类型提供 的基方法的实现System.Object,例如ToString(). 在 C# 中看起来像这样:

public abstract class Base
{
    public abstract override string ToString();
}

这在 F# 中可能吗?

4

2 回答 2

3

F# 规范对抽象成员进行了如下说明:

抽象成员定义具有以下形式:

抽象访问选择 成员签名

因此,这似乎是不可能的。

于 2018-05-15T13:04:20.987 回答
3

我不确定是否有等同于abstract override. 你可以这样来获得相同的行为:

[<AbstractClass>]
type Base() =
    abstract GetString: unit -> string
    override this.ToString() = this.GetString()

然后你只需覆盖GetString你的派生类型。

于 2018-05-15T12:26:18.130 回答