Member „<membername1>“ deklariert implizit „<implicitmembername>“, was zu einem Konflikt mit einem Member in der Basisklasse „<baseclassname>“ führt.

Member „<membername1>“ deklariert implizit „<implicitmembername>“, was zu einem Konflikt mit einem Member in der Basisklasse „<baseclassname>“ führt. Daher sollte der Member nicht als 'Overloads' deklariert werden.

Eine Eigenschaft in einer abgeleiteten Klasse generiert einen impliziten Member mit demselben Namen wie für ein Member der Basisklasse und gibt das Overloads -Schlüsselwort an.

Überladen wird verwendet, um mehrere Versionen einer Eigenschaft oder Prozedur in derselben Klasse zu definieren. Sie können keine zusätzliche Version eines Basisklassenmembers definieren, es sei denn, der Basisklassenmember gibt bereits Overloadsan. Da der in Konflikt stehende Basisklassenmember Overloadsnicht angibt, geht der Compiler davon aus, dass diese Eigenschaft den impliziten Member der Basisklasse überschattet ( Shadows ).

Der Visual Basic-Compiler erstellt implizite Member, die bestimmten von Ihnen deklarierten Programmierelementen entsprechen. In der folgenden Tabelle werden diese impliziten oder auch synthetischenMember zusammengefasst.

Deklariertes Element Implizit erstellte Member
Enumeration value__ -Member
Ereignis add_<eventname> -Prozedur

remove_<eventname> -Prozedur

<eventname>Event -Feld

<eventname>EventHandler-Delegat
Eigenschaft get_<propertyname> -Prozedur

set_<propertyname> -Prozedur
My.Form -Member, My.WebService -Member oder Member einer mit dem Attribut MyGroupCollectionAttribute gekennzeichneten Klasse m_<variablename> Static-Variable

<variablename>-Eigenschaft

get_<variablename> -Prozedur

set_<variablename> -Prozedur
WithEvents -Variable _<variablename> -Variable

<variablename>-Eigenschaft

get_<variablename> -Prozedur

set_<variablename> -Prozedur

Aufgrund des Risikos von Namenskonflikten sollten Sie vermeiden, deklarierte Programmierelemente in derselben Form wie eines dieser impliziten Member zu benennen. Sie sollten z. B. Elementnamen vermeiden, die mit get_ oder set_beginnen.

Standardmäßig ist diese Meldung eine Warnung. Weitere Informationen zum Ausblenden von Warnungen oder zum Behandeln von Warnungen als Fehler finden Sie unter Configuring Warnings in Visual Basic.

Fehler-ID: BC40022

So beheben Sie diesen Fehler

  • Wenn Sie den Basisklassenmember ausblenden oder überschatten möchten, sollten Sie das Overloads -Schlüsselwort in die Deklaration der Eigenschaft durch das Shadows -Schlüsselwort ersetzen.

  • Wenn Sie nicht beabsichtigen, den Basisklassenmember zu überschatten, ändern Sie den Namen der Eigenschaft, um Konflikte mit den in der obigen Tabelle aufgelisteten Namen zu vermeiden.

Siehe auch