Freigeben über


Die Schnittstelle '<Schnittstellenname1>' kann nicht geerbt werden, da die Schnittstelle '<Schnittstellenname2>', von der geerbt wird, möglicherweise mit der Schnittstelle "'<Schnittstellenname3>' identisch ist, von der die Schnittstelle '<Schnittstellenname4>' bei manchen Typargumenten erbt

Aktualisiert: November 2007

Cannot inherit interface '<interfacename1>' because the interface '<interfacename2>' from which it inherits could be identical to interface '<interfacename3>' from which the interface '<interfacename4>' inherits for some type arguments

Eine generische Schnittstelle erbt von mindestens zwei generischen Schnittstellen, und zwei der Vererbungen können einen Konflikt mit bestimmten Werten von Typargumenten verursachen.

Dieser Fehler kann von den folgenden Anweisungen generiert werden.

Public Interface interfaceA(Of u)
End Interface
Public Interface interfaceX(Of v)
    Inherits interfaceA(Of v)
End Interface
Public Interface interfaceY(Of w)
    Inherits interfaceA(Of w)
End Interface
Public Interface derivedInterface(Of t1, t2)
    Inherits interfaceX(Of t1), interfaceY(Of t2)
End Interface

Wenn die Erstellung oder Implementierung von derivedInterface durch Angeben desselben Typs sowohl für t1 als auch t2 erfolgt, muss sie zwei Versionen von interfaceA mit identischen Typargumenten erben. Dies führt zu einer Mehrdeutigkeit in Bezug auf die Version, auf die zugegriffen werden soll.

Fehler-ID: BC32122

So beheben Sie diesen Fehler

  • Ändern Sie eines der für die abgeleitete Schnittstelle angegebenen Typargumente, sodass kein Konflikt auftritt.

    – oder –

  • Entfernen Sie eine der Schnittstellen, die den potenziellen Vererbungs- oder Implementierungskonflikt auslösen, aus der Inherits-Anweisung.

Siehe auch

Konzepte

Übersicht über Schnittstellen

Grundlagen der Vererbung

Generische Typen in Visual Basic

Referenz

Interface-Anweisung (Visual Basic)

Inherits-Anweisung