Il membro '<nomemembro1>' dichiara in modo implicito '<nomemembroimplicito>', che è in conflitto con un membro della classe base '<nomeclassedibase>'

Aggiornamento: novembre 2007

Messaggio di errore

Il membro '<nomemembro1>' dichiara in modo implicito '<nomemembroimplicito>', che è in conflitto con un membro della classe base '<nomeclassedibase>', quindi il membro non dovrebbe essere dichiarato 'Overloads'.
Member '<membername1>' implicitly declares '<implicitmembername>', which conflicts with a member in the base class '<baseclassname>', and so the member should not be declared 'Overloads'

Una proprietà in una classe derivata genera un membro implicito con lo stesso nome di un membro della classe base e specifica la parola chiave Overloads.

L'overload è utilizzato per definire versioni multiple di una proprietà o routine tutte nella stessa classe. Non è possibile definire una versione aggiuntiva di un membro di una classe base a meno che tale membro specifichi già Overloads. Poiché il membro della classe base in conflitto non specifica Overloads, il compilatore presuppone che questa proprietà Shadows sia il membro implicito della classe base.

Il compilatore Visual Basic crea membri impliciti corrispondenti a determinati elementi di programmazione dichiarati. Nella tabella riportata di seguito vengono riassunti questi membri impliciti o sintetici.

Elemento dichiarato

Membri creati in modo implicito

Enumerazione

Membro value__

Evento

Procedura add_<eventname>

Procedura remove_<eventname>

Campo <eventname>Event

Delegato <eventname>EventHandler

Proprietà

Procedura get_<propertyname>

Procedura set_<propertyname>

Membro My.Form, membro My.WebService o membro di una classe contrassegnata con l'attributo MyGroupCollectionAttribute

m_<variablename> Variabile Static

Proprietà <variablename>

Procedura get_<variablename>

Procedura set_<variablename>

Variabile WithEvents

Variabile _<variablename>

Proprietà <variablename>

Procedura get_<variablename>

Procedura set_<variablename>

A causa del rischio di conflitti tra nomi, si consiglia di evitare di denominare eventuali elementi di programmazione dichiarati utilizzando la stessa forma di uno di questi membri impliciti. 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 ulteriori informazioni su come nascondere gli avvisi o considerarli come errori, vedere Configurazione degli avvisi in Visual Basic.

ID errore: BC40022

Per correggere l'errore

  • Se si intende nascondere o ombreggiare il membro della classe base, sostituire la parola chiave Overloads con la parola chiave Shadows nella dichiarazione della proprietà.

  • Se non si ha intenzione di ombreggiare il membro della classe base, modificare il nome della proprietà per evitare i conflitti tra nomi descritti nella tabella precedente.

Vedere anche

Concetti

Nomi di elementi dichiarati