2014-05-17 85 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() 
相關問題