簡體   English   中英

如何在F#中聲明循環相關的抽象類

[英]How do I declare circular dependant abstract Classes in F#

考慮兩個抽象類alpha和beta:

[<AbstractClass>]  
type alpha () =
    abstract member foo: beta->beta

[<AbstractClass>] 
and beta () = //***
    abstract member bar: alpha

如果我嘗試編譯,我得到一個錯誤,在* * *指示的行上:

error FS0010: Unexpected keyword 'and' in interaction

如果我寫:

[<AbstractClass>]  
type alpha () =
    abstract member foo: beta->beta

and beta () =
    abstract member bar: alpha

然后我得到:

error FS0365: No implementation was given for 'abstract member beta.bar : alpha'

以及我應該添加AbstractClass屬性的提示

那么我如何聲明循環定義的抽象類?

將屬性放在'and'關鍵字后面:

[<AbstractClass>]
type alpha () =
    abstract member foo : beta -> beta

and [<AbstractClass>]  beta () =
    abstract member bar : alpha

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM