Freigeben über


'<elementname>' ist mehrdeutig, da mehrere Arten von Membern mit diesem Namen in <type> '<typename>' vorhanden sind

Ein Ausdruck greift auf ein Programmierelement zu, das in einer Klasse, in einer Struktur, in einem Modul oder in einer Schnittstelle definiert ist, die bzw. das mehrere Member mit demselben Namen enthält.

Die wahrscheinlichste Ursache für diesen Fehler ist die Berücksichtigung der Groß-/Kleinschreibung. Bei Visual Basic-Namen wird die Groß-/Kleinschreibung nicht berücksichtigt, was bedeutet, dass Sie die Namen an verschiedenen Stellen im Code hinsichtlich der Groß-/Kleinschreibung unterschiedlich schreiben können. Wenn Sie z. B. eine Variable namens XYZ definieren und später als xyzdarauf zugreifen, betrachtet der Compiler diese beiden Namen als äquivalent.

Bei anderen Sprachen wie C# und Visual C++ wird jedoch die Groß-/Kleinschreibung beachtet. In einer Sprache mit Berücksichtigung der Groß-/Kleinschreibung gelten XYZ und xyz nicht als identisch. Daher kann eine Klasse, die in einer solchen Sprache geschrieben wurde, eine Variable namens XYZ sowie eine Eigenschaft namens xyzdefinieren. Die Common Language Runtime (CLR) behält die Berücksichtigung der Groß-/Kleinschreibung in Assemblys bei. Wenn eine Visual Basic-Anwendung jedoch auf eine Assembly mit den Namen XYZ und xyzzugreift, werden sie mit demselben Namen angezeigt.

Fehler-ID: BC31429

So beheben Sie diesen Fehler

  1. Wenn Sie die Kontrolle über den Quellcode des definierenden Typs haben, sollten Sie die Umbenennung der Member erwägen, damit sie sich nicht nur durch die Groß-/Kleinschreibung unterscheiden. Dies ist ggf. nicht möglich, wenn der definierende Typ bereits veröffentlicht wurde und von anderen Anwendungen verwendet wird.

  2. Wenn Sie die Member im definierenden Typ nicht umbenennen können, entfernen Sie das genannte Programmierelement aus dem Code. Sie können nicht auf Elemente zugreifen, die für Visual Basic mehrere Definitionen zu besitzen scheinen.

Siehe auch