Member '<Schnittstellenname>.<Prozedurname>', der dieser Signatur entspricht, kann nicht implementiert werden, da die Schnittstelle '<Schnittstellenname>' mehrere Member mit diesem Namen und derselben Signatur enthält: <Signaturliste>

Eine Prozedur oder Eigenschaft versucht, eine Prozedur bzw. Eigenschaft zu implementieren, die in einer implementierten Schnittstelle definiert ist, doch der Compiler findet mehrere Versionen der Schnittstellenprozedur oder -eigenschaft mit gleichem Namen und gleicher Signatur.

Dieser Fehler kann in einer Situation mit konstruierten generischen Typen auftreten, wie in den folgenden Skelettdeklarationen veranschaulicht.

Public Interface baseInterface(Of t)  
    Sub doSomething(ByVal inputValue As String)  
    Sub doSomething(ByVal inputValue As t)  
End Class  
Public Class implementingClass  
    Implements baseInterface(Of String)  
    Sub doSomething(ByVal inputValue As String) _  
        Implements baseInterface(Of String).doSomething  
    End Sub  
End Class  

Da die implementingClass die baseInterface implementiert, die eine String für den Typparameter tangibt, haben die beiden Versionen von doSomething in der baseInterface in Bezug auf die implementingClass identische Signaturen. Daher kann der Compiler nicht ermitteln, welche Version implementiert werden soll.

Fehler-ID: BC30937

So beheben Sie diesen Fehler

  • Ändern Sie das Typargument (oder mehrere Typargumente), das Sie für die Basisklasse angeben, damit sich keine identischen Signaturen von Memberprozeduren oder Eigenschaften ergeben.

    Oder

  • Implementieren Sie diese Basisklasse nicht. Sie können sie nicht mit dem von Ihnen verwendeten Satz von Typargumenten implementieren, da Sie jeden einzelnen seiner Member implementieren müssen.

Siehe auch