如何指定自返回类型

时间:2014-05-17 14:05:57

标签: f#

我有一个名为“RecordA”的抽象类,带有一些切片逻辑,我希望从这个逻辑子类中继承几个类。我希望“Record”定义一个Abstract Slice方法,该方法必须实现才能返回它自己的类型,例如: G。切片时输入“RecordB”返回RecordB类型。

Fsharp有可能吗?如果没有,为什么不呢?

1 个答案:

答案 0 :(得分:4)

接口具有根据具体类返回不同类型的方法的唯一方法是使其参数化:

type Record<'Concrete> =
    abstract member Slice : unit -> 'Concrete

type RecordB() =
    interface Record<RecordB> with
        member this.Slice() = new RecordB()