Lyn*_*ite 5 .net f# abstract-class circular-dependency circular-reference
考虑两个抽象类alpha和beta:
[<AbstractClass>]
type alpha () =
abstract member foo: beta->beta
[<AbstractClass>]
and beta () = //***
abstract member bar: alpha
Run Code Online (Sandbox Code Playgroud)
如果我尝试编译,我得到一个错误,在***指示的行上:
error FS0010: Unexpected keyword 'and' in interaction
Run Code Online (Sandbox Code Playgroud)
如果我写:
[<AbstractClass>]
type alpha () =
abstract member foo: beta->beta
and beta () =
abstract member bar: alpha
Run Code Online (Sandbox Code Playgroud)
然后我得到:
error FS0365: No implementation was given for 'abstract member beta.bar : alpha'
Run Code Online (Sandbox Code Playgroud)
以及我应该添加AbstractClass属性的提示
那么我如何声明循环定义的抽象类?
将属性放在'and'关键字后面:
[<AbstractClass>]
type alpha () =
abstract member foo : beta -> beta
and [<AbstractClass>] beta () =
abstract member bar : alpha
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
149 次 |
| 最近记录: |