[英]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.