Eigenschaft '<propertyname>' deklariert implizit '<implicitmembername>', was zu einem Konflikt mit einem Member führt, der implizit für Member '<membername>' in der Basisklasse '<baseclassname>' deklariert wird

Member „<Membername1>“ deklariert implizit „<Name des impliziten Members>“, was zu einem Konflikt mit einem Member führt, der implizit für Member „<Membername2>“ in der Basisklasse „<Basisklassenname>“ deklariert wird. 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 einen impliziten 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 implizite Member Overloadsnicht angeben, 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: BC40024

So beheben Sie diesen Fehler

  • Wenn Sie den impliziten 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 impliziten Member der Basisklasse zu überschatten, ändern Sie den Namen der Eigenschaft, um Konflikte mit den in der obigen Tabelle aufgelisteten Namen zu vermeiden.

Siehe auch