2014-05-17 82 views
2

我有一个名为“RecordA”的抽象类,它带有一些我想从中分类几个类的切片逻辑。我想要“记录”来定义一个抽象切片方法,必须实现它来返回它自己的类型,例如。 G。在切片时键入“RecordB”将返回RecordB类型。如何指定一个自我返回类型

这在Fsharp中可能吗?如果不是,为什么不呢?

+0

另见http://stackoverflow.com/questions/3045671/接口为方法,它返回它自己的类型(所有答案在这里适用) – Jwosty

回答

4

为一个接口只有这样,才能有一个返回不同类型取决于具体类是使其参数的方法:

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

type RecordB() = 
    interface Record<RecordB> with 
     member this.Slice() = new RecordB() 
相关问题