5

Hãy xem xét hai lớp trừu tượng alpha và beta:Làm thế nào để khai báo các lớp trừu tượng phụ thuộc tròn trong F #

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

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

Nếu tôi cố gắng biên dịch mà tôi gặp phải lỗi, trên dòng chỉ báo bằng * * *:

error FS0010: Unexpected keyword 'and' in interaction 

Và nếu tôi viết:

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

and beta() = 
    abstract member bar: alpha 

sau đó tôi nhận được:

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

và gợi ý rằng tôi nên thêm AbstractClass Attribute

Vì vậy, lớp trừu tượng làm thế nào để tôi tuyên bố tròn được xác định?

Trả lời

7

Đặt thuộc tính sau 'và' từ khóa:

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

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