5

2つの抽象クラス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属性を追加する必要があるというヒント

では、循環的に定義された抽象クラスを宣言するにはどうすればよいですか?

4

1 に答える 1

7

'および'キーワードの後に​​属性を配置します。

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

and [<AbstractClass>]  beta () =
    abstract member bar : alpha
于 2012-05-06T05:18:09.770 に答える