Non è possibile ereditare l'interfaccia '<interfacename1>' perché l'interfaccia '<interfacename2>' da cui eredita potrebbe essere identica all'interfaccia '<interfacename3>' da cui eredita l'interfaccia '<interfacename4>' per alcuni argomenti di tipo

Un'interfaccia generica eredita da due o più interfacce generiche e due delle ereditarietà potrebbero essere in conflitto per determinati valori di argomenti di tipo.

Le istruzioni seguenti possono generare questo errore.

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

Se l'interfaccia derivedInterface è costruita o implementata specificando lo stesso tipo sia in t1 che in t2, deve ereditare due versioni di interfaceA con argomenti di tipo identici. In questo modo si produrrebbe un'ambiguità sulla versione a cui accedere.

ID errore: BC32122

Per correggere l'errore

  • Modificare uno degli argomenti di tipo forniti all'interfaccia derivata in modo che non siano presenti conflitti.

    oppure

  • Rimuovere dall'istruzione Inherits una delle interfacce che determina il potenziale conflitto di ereditarietà o implementazione.

Vedi anche