Die <Schnittstellenname1>-Schnittstelle kann nicht implementiert werden, da ihre Implementierung aufgrund einiger Typargumente einen Konflikt mit der ebenfalls implementierten <Schnittstellenname2>-Schnittstelle verursachen könnte

Aktualisiert: November 2007

Cannot implement interface '<interfacename1>' because its implementation could conflict with the implementation of another implemented interface '<interfacename2>' for some type arguments

Eine Klassendeklaration enthält eine Implements-Anweisung, die mehrere Schnittstellen angibt. Mindestens eine der Schnittstellen ist jedoch generisch, und zwei der Implementierungen können bei bestimmten Werten von Typargumenten einen Konflikt verursachen.

Dieser Fehler kann durch die folgenden Anweisungen generiert werden.

Public Interface iFace1
    Sub testSub(ByVal arg As String)
End Interface
Public Interface iFace2(Of t)
    Sub testSub(ByVal arg As t)
End Interface
Public Class testClass
    Implements iFace1, iFace2(Of String)
End Class

Da iFace2 mit String erstellt wird, muss testClass zwei Versionen von testSub mit identischer Signatur implementieren. Dies führt zu einer Mehrdeutigkeit in Bezug auf die Version, auf die zugegriffen werden soll.

Fehler-ID: BC32072

So beheben Sie diesen Fehler

  • Ändern Sie das für die generische Schnittstelle angegebene Typargument, sodass kein Konflikt auftritt.

    – oder –

  • Entfernen Sie eine der Schnittstellen, die den Implementierungskonflikt verursachen, aus der Implements-Anweisung.

Siehe auch

Konzepte

Implements-Schlüsselwort und Implements-Anweisung

Generische Typen in Visual Basic

Referenz

Class-Anweisung (Visual Basic)

Interface-Anweisung (Visual Basic)

Implements-Anweisung