Il membro '<membername1>' dichiara in modo implicito '<implicitmembername>', che è in conflitto con un membro dichiarato in modo implicito per il membro '<membername2>' nella classe di base '<baseclassname>'

Il membro '<membername1>' dichiara in modo implicito '<implicitmembername>', che è in conflitto con un membro dichiarato in modo implicito per il membro '<membername2>' nella classe di base '<baseclassname>'. Quindi, il membro deve essere dichiarato 'Shadows'.

Un membro di una classe derivata genera un membro implicito con lo stesso nome di un membro implicito della classe base. Dal momento che i membri impliciti non specificano Overloads, il compilatore presuppone che questo membro Shadows sia il membro della classe base implicita. Il codice risulta più leggibile e meno soggetto a errori, se si specifica esplicitamente la parola chiave Shadows per questo membro.

Il compilatore di Visual Basic crea membri impliciti corrispondenti a determinati elementi di programmazione dichiarati. La tabella seguente riepiloga questi membri impliciti o sintetici.

Elemento dichiarato Membri creati in modo implicito
Enumerazione Membrovalue__
Event Routineadd_<eventname>

Routineremove_<eventname>

Campo di<eventname>Event

Delegato<eventname>EventHandler
Proprietà Routineget_<propertyname>

Routineset_<propertyname>
MembroMy.Form , membro My.WebService , membro or member of a class marked with the MyGroupCollectionAttribute Variabile Static m_<variablename>

Proprietà <variablename>

Routineget_<variablename>

Routineset_<variablename>
VariabileWithEvents Variabile_<variablename>

Proprietà <variablename>

Routineget_<variablename>

Routineset_<variablename>

A causa del rischio di conflitti di nomi, è consigliabile evitare di denominare gli elementi di programmazione dichiarati usando la stessa forma di qualsiasi membro implicito. Ad esempio, è consigliabile evitare qualsiasi nome di elemento che inizia con get_ o set_.

Per impostazione predefinita, si tratta di un messaggio di avviso. Per altre informazioni su come nascondere gli avvisi o considerarli come errori, vedere Configuring Warnings in Visual Basic.

ID errore: BC40018

Per correggere l'errore

  • Se si prevede di nascondere il membro implicito della classe base, includere la parola chiave Shadows nella dichiarazione del membro della classe derivata.

  • Se non si intende nascondere il membro implicito della classe base, modificare il nome del membro della classe derivata per evitare conflitti con i nomi elencati nella tabella precedente.

Vedi anche