Der Member '<Klassenname>.<Prozedurname>', der dieser Signatur entspricht, kann nicht überschrieben werden, da die <Klassenname>-Klasse mehrere Member mit diesem Namen und dieser Signatur enthält: <Signaturliste>

Aktualisiert: November 2007

Member '<classname>.<procedurename>' that matches this signature cannot be overridden because the class '<classname>' contains multiple members with this same name and signature: <signaturelist>

Eine Prozedur oder Eigenschaft versucht, eine geerbte Prozedur bzw. Eigenschaft zu überschreiben, doch der Compiler findet mehrere Versionen der Basisprozedur bzw. -eigenschaft mit dem gleichen Namen und der gleichen Signatur.

Dieser Fehler kann in einer Situation mit konstruierten generischen Typen auftreten, wie die folgenden Skelette von Deklarationen veranschaulichen.

Public Class baseClass(Of t)
    Public Overridable Sub doSomething(ByVal inputValue As String)
    End Sub
    Public Overridable Sub doSomething(ByVal inputValue As t)
    End Sub
End Class
Public Class derivedClass
    Inherits baseClass(Of String)
    Overrides Sub doSomething(ByVal inputValue As String)
    End Sub
End Class

Da baseClass von derivedClass vererbt wird und String für den Typparameter t bereitstellt, verwenden die beiden Versionen von doSomething in baseClass identische Signaturen, soweit dies derivedClass betrifft. Daher kann der Compiler nicht bestimmen, welche Version überschrieben werden soll.

Fehler-ID: BC30935

So beheben Sie diesen Fehler

  • Ändern Sie die Typargumente, die Sie für die Basisklasse angeben, sodass Memberprozeduren oder -eigenschaften keine identischen Signaturen aufweisen.

    – oder –

  • Wenn Sie die Basisklasse mit dem Satz von Typargumenten vererben müssen, den Sie verwenden, überschreiben Sie nicht die in dieser Fehlermeldung angegebene Prozedur oder Eigenschaft.

Siehe auch

Konzepte

Überschreiben von Eigenschaften und Methoden

Referenz

Overridable

Overrides