2009-01-26 8 views
13

J'ai une classe divisée entre deux fichiers. L'un d'entre eux est généré, l'autre contient le contenu non généré.asp.net: classes partielles et héritage

Je souhaite que ma classe hérite d'une classe de base. Ai-je besoin d'avoir les deux fichiers hérités? Ou la classe hérite de la classe de base si l'une classe partielle

Generata foo.vb:

Partial Public Class Foo Inherits BaseClass

En foo.vb manuellement créé:

Partial Public Class Foo

Cela ne semble pas important (d'après ce que je vois dans Reflector, de toute façon).

Quelqu'un peut-il expliquer comment cela fonctionne? Est-ce que le compilateur combine simplement les deux?

+0

Bonne question! –

Répondre

13

Seul l'un des deux doit hériter.

Les classes partielles sont juste des astuces du compilateur. Vos deux fichiers sont assemblés avant la compilation. Cela signifie qu'une seule classe de base peut être spécifiée, comme dans les classes normales.

Vous pouvez avoir ceci:

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

et ceci:

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

mais pas

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

parce que le dernier combine dans:

class one : fu, bar {} 

ce qui est illégal. Cependant, vous pouvez mélanger et faire correspondre des interfaces, comme dans une classe normale.

Questions connexes