5

considerar las dos clases abstractas alfa y beta:Cómo yo anuncio Clases abstractas dependientes circulares en Fa #

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

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

Si intento compilar que me da un error, en la línea indicada con * * *:

error FS0010: Unexpected keyword 'and' in interaction 

Y si escribo:

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

and beta() = 
    abstract member bar: alpha 

en cuando me siento:

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

y la indirecta de que yo debería añadir el atributo AbstractClass

Así clases abstractas cómo yo anuncio circularmente definidos?

Respuesta

7

Poner el atributo después de la 'y' palabra clave:

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

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