Impossibile ereditare l'interfaccia '<nomeinterfaccia1>' perché potrebbe essere identica all'interfaccia '<nomeinterfaccia2>' da cui l'interfaccia '<nomeinterfaccia3>' eredita, per alcuni tipi di argomenti

Aggiornamento: novembre 2007

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

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

Le seguenti istruzioni possono generare questo errore.

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

Se derivedInterface viene costruita o implementata fornendo lo stesso tipo sia all'oggetto t1 sia all'oggetto t2, deve ereditare due versioni dell'interfaccia interfaceA con argomenti di tipo identici. In tal modo, si produce un'ambiguità sulla versione alla quale accedere.

ID errore: BC32123

Per correggere l'errore

  • Modificare uno degli argomenti di tipo fornito all'interfaccia derivata in modo che non si verifichino conflitti.

    -oppure-

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

Vedere anche

Concetti

Cenni preliminari sulle interfacce

Nozioni fondamentali sull'ereditarietà

Tipi generici in Visual Basic

Riferimenti

Istruzione Interface (Visual Basic)

Istruzione Inherits