Le membre '<NomMembre1>' déclare implicitement '<NomMembreImplicite>', qui est en conflit avec un membre implicitement déclaré pour le membre '<NomMembre2>' dans la classe de base '<NomClasseDeBase>'

Mise à jour : novembre 2007

Message d'erreur

Le membre '<NomMembre1>' déclare implicitement '<NomMembreImplicite>', qui est en conflit avec un membre implicitement déclaré pour le membre '<NomMembre2>' dans la classe '<NomClasseDeBase>' de base. Le membre doit donc être déclaré 'Shadows'.
Member '<membername1>' implicitly declares '<implicitmembername>', which conflicts with a member implicitly declared for member '<membername2>' in the base class '<baseclassname>'. So the member should be declared 'Shadows'.

Un membre d'une classe dérivée génère un membre implicite qui porte le même nom qu'un membre implicite de la classe de base. Étant donné que les membres implicites ne spécifient pas Overloads, le compilateur suppose que ce membre Shadows le membre implicite de la classe de base. Votre code est plus lisible et moins susceptible d'engendrer des erreurs, si vous spécifiez explicitement le mot clé Shadows pour ce membre.

Le compilateur Visual Basic crée des membres implicites correspondant à certains éléments de programmation que vous déclarez. Le tableau suivant récapitule ces membres implicit ou synthetic.

Élément déclaré

Membres créés implicitement

Énumération

Membre value__

Événement

Procédure add_<eventname>

Procédure remove_<eventname>

Champ <eventname>Event

Délégué <eventname>EventHandler

Propriété

Procédure get_<propertyname>

Procédure set_<propertyname>

Membre de My.Form, de My.WebService ou d'une classe marquée avec l'attribut MyGroupCollectionAttribute

m_<variablename> Variable Static

Propriété <variablename>

Procédure get_<variablename>

Procédure set_<variablename>

Variable WithEvents

Variable _<variablename>

Propriété <variablename>

Procédure get_<variablename>

Procédure set_<variablename>

En raison du risque de conflit de noms, vous devez éviter de nommer tout élément de programmation déclaré avec un format identique tel que l'un de ces membres implicites. Vous devez par exemple éviter les noms d'éléments commençant par get_ ou set_.

Par défaut, ce message est un avertissement. Pour plus d'informations sur le masquage des avertissements ou le traitement des avertissements en tant qu'erreurs, consultez Configuration d'avertissements en Visual Basic.

ID d'erreur : BC40018

Pour corriger cette erreur

  • Si vous comptez masquer ou occulter le membre implicite de la classe de base, incluez le mot clé Shadows dans la déclaration du membre de la classe dérivée.

  • Si vous ne comptez pas occulter le membre implicite de la classe de base, modifiez le nom du membre de la classe dérivée pour éviter tout conflit avec les noms répertoriés dans le précédent tableau.

Voir aussi

Concepts

Noms d'éléments déclarés