'<Schnittstellenname1>.<Membername>' kann nicht implementiert werden, da die Implementierung für manche Typargumente mit der Implementierung für '<Schnittstellenname2>.<Membername>' in Konflikt stehen könnte
Aktualisiert: November 2007
Cannot implement '<interfacename1>.<membername>' because its implementation could conflict with the implementation for '<interfacename2>.<membername>' for some type arguments
Eine Klasse implementiert mehr als eine generische Schnittstelle, von denen eine von einer anderen erbt, und zwei Implementierungen einer Schnittstelle könnten bei bestimmten Werten der Typargumente miteinander in Konflikt stehen.
Dieser Fehler kann durch die folgenden Anweisungen generiert werden.
Public Interface iFace1(Of t)
Sub testSub()
End Interface
Public Interface iFace2(Of u)
Inherits iFace1(Of u)
End Interface
Public Class testClass(Of y, z)
Implements iFace1(Of y), iFace2(Of z)
Public Sub testSuby() Implements iFace1(Of y).testSub
End Sub
Public Sub testSubz() Implements iFace1(Of z).testSub
End Sub
End Class
Da iFace2 beim Erben von iFace1 einen eigenen Typparameter verwendet (u), würde testClass zwei Versionen von iFace1.testSub implementieren, die über identische Signaturen verfügten, wenn dasselbe Argument an y und z übergeben würde. Dies würde zu einer Mehrdeutigkeit in Bezug auf die Version führen, auf die zugegriffen werden soll.
Fehler-ID: BC32125
So beheben Sie diesen Fehler
Ändern Sie die Vererbungsstruktur der Schnittstellen, sodass iFace1 nicht mit zwei verschiedenen Typargumenten implementiert werden kann.
– 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)