„<Schnittstellenname1>.<Membername>“ kann nicht implementiert werden, da die Implementierung zu einem Konflikt mit der Implementierung einiger Typargumente von „<Schnittstellenname2>.<Membername>“ führen könnte
Eine Klasse implementiert mehrere generische Schnittstellen, von denen eine von einer anderen erbt, und zwei Implementierungen eines Schnittstellenmembers können einen Konflikt mit bestimmten Werten von Typargumenten verursachen.
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
von iFace1
erbt (unter Verwendung des eigenen Typparametersu
), würde testClass
zwei Versionen von iFace1.testSub
mit identischen Signaturen implementieren, wenn dasselbe Typargument 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
Ändern Sie die Vererbungsstruktur der Schnittstellen so, dass
iFace1
nicht mit zwei verschiedenen Typargumenten implementiert werden kann.Oder
Entfernen Sie die
Implements
-Anweisung aus einer der Schnittstellen, die zum Konflikt bei der Implementierung führen.
Feedback zu .NET
.NET ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben: