Freigeben über


Member '<Membername1>' deklariert implizit '<Name des impliziten Members>', was einen Konflikt mit einem implizit für Member '<Membername2>' in Basisklassen-<Basisklassenname>' deklarierten Member verursacht

Aktualisiert: November 2007

Fehlermeldung

Member "<Membername1>" deklariert implizit "<Name des impliziten Members>", was einen Konflikt mit einem implizit für Member "<Membername2>" in Basisklassen-<Basisklassenname>" deklarierten Member verursacht. Member muss als "Shadows" deklariert werden
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'.

Ein Member einer abgeleiteten Klasse generiert einen impliziten Member mit demselben Namen wie ein impliziter Member der Basisklasse. Da implizite Member nicht Overloads angeben, geht der Compiler davon aus, dass dieser Member auf den impliziten Basisklassenmember Shadows anwendet. Der Code ist besser lesbar und weniger fehleranfällig, wenn Sie für diesen Member explizit das Shadows-Schlüsselwort angeben.

Der Visual Basic-Compiler erstellt implizite Member, die bestimmten von Ihnen deklarierten Programmierelementen entsprechen. In der folgenden Tabelle werden diese impliziten bzw. synthetischen Member 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 Klasse, die mit dem MyGroupCollectionAttribute-Attribut markiert ist

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 sollte es vermieden werden, deklarierte Programmierelemente in derselben Form wie diese impliziten Member zu benennen. Vermeiden Sie z. B. Elementnamen, die mit get_ oder set_ beginnen.

Standardmäßig ist diese Meldung eine Warnung. Weitere Informationen über das Ausblenden von Warnungen bzw. über die Behandlung von Warnungen als Fehler finden Sie unter Konfigurieren von Warnungen in Visual Basic.

Fehler-ID: BC40018

So beheben Sie diesen Fehler

  • Wenn Sie den impliziten Basisklassenmember ausblenden bzw. Shadowing auf diesen anwenden möchten, fügen Sie in der Deklaration des abgeleiteten Klassenmembers das Shadows-Schlüsselwort ein.

  • Wenn Sie auf den impliziten Basisklassenmember kein Shadowing anwenden möchten, ändern Sie den Namen des abgeleiteten Klassenmembers, um Konflikte mit den in der obigen Tabelle aufgelisteten Namen zu vermeiden.

Siehe auch

Konzepte

Namen deklarierter Elemente