abstract override您可以在 C# 抽象类中声明方法。您可以这样做以强制派生类型提供 的基方法的实现System.Object,例如ToString(). 在 C# 中看起来像这样:
public abstract class Base
{
public abstract override string ToString();
}
这在 F# 中可能吗?
abstract override您可以在 C# 抽象类中声明方法。您可以这样做以强制派生类型提供 的基方法的实现System.Object,例如ToString(). 在 C# 中看起来像这样:
public abstract class Base
{
public abstract override string ToString();
}
这在 F# 中可能吗?
F# 规范对抽象成员进行了如下说明:
抽象成员定义具有以下形式:
抽象访问选择 成员签名
因此,这似乎是不可能的。
我不确定是否有等同于abstract override. 你可以这样来获得相同的行为:
[<AbstractClass>]
type Base() =
abstract GetString: unit -> string
override this.ToString() = this.GetString()
然后你只需覆盖GetString你的派生类型。