2009-01-26 29 views
13

Tengo una clase dividida en dos archivos. Uno de estos se genera, el otro contiene el material no generado.asp.net: clases parciales y herencia

Quiero que mi clase herede de una clase base. ¿Debo tener ambos archivos heredar? O la clase heredar de la clase base si cualquiera clase parcial

En foo.vb generada:

Partial Public Class Foo Inherits BaseClass

En foo.vb creado manualmente:

Partial Public Class Foo

No parece importar (de acuerdo con lo que veo en Reflector, de todos modos).

¿Alguien puede explicar cómo funciona esto? ¿El compilador simplemente combina los dos?

+0

¡Buena pregunta! –

Respuesta

13

Solo una de las dos necesidades heredará.

Las clases parciales son solo trucos de compilación. Tus dos archivos se unen nuevamente antes de compilar. Esto significa que solo se puede especificar una clase base, al igual que en las clases normales.

Usted puede tener esto:

partial class one : base {} 
partial class one {} 

y esto:

partial class one : base {} 
partial class one : base {} 

pero no este

partial class one : fu {} 
partial class two : bar {} 

debido a que el último combina en:

class one : fu, bar {} 

que es ilegal. Sin embargo, puedes mezclar y combinar interfaces, al igual que en una clase normal.