Partager via


'MustOverride' ne peut pas être spécifié pour '<NomProcédure>', car il est dans un type partiel déclaré 'NotInheritable' dans une autre définition partielle

Mise à jour : novembre 2007

'MustOverride' cannot be specified on '<procedurename>' because it is in a partial type that is declared 'NotInheritable' in another partial definition

Une procédure ou une propriété est déclarée comme MustOverride dans une classe définie dans plusieurs déclarations partielles, mais l'une des définitions partielles spécifie NotInheritable pour la classe.

Lorsque vous divisez la définition d'une classe en plusieurs déclarations partielles, le compilateur traite la classe comme l'union de toutes ses déclarations partielles. Cela s'applique non seulement aux membres, mais également à l'implémentation, l'héritage et le niveau d'accès.

Pour substituer une procédure ou une propriété, une classe doit en hériter d'une classe de base. Par conséquent, vous devez spécifier MustInherit pour la classe afin de spécifier MustOverride pour une procédure ou une propriété dans une classe de base. Ces mots clés étant mutuellement contradictoires, vous ne pouvez pas spécifier MustInherit et NotInheritable pour la même classe.

ID d'erreur : BC30927

Pour corriger cette erreur

  • Si la propriété ou la procédure doit être substituée, supprimez le mot clé NotInheritable de la déclaration partielle dans laquelle il apparaît.

  • Si la classe doit avoir la valeur NotInheritable, supprimez le mot clé MustOverride de la procédure ou la propriété. Vous ne pouvez pas le substituer car vous ne pouvez pas hériter de la classe.

Voir aussi

Concepts

Éléments fondamentaux de l'héritage

Référence

Partial (Visual Basic)

MustOverride

MustInherit

NotInheritable