Impossibile ereditare l'interfaccia '<nomeinterfaccia1>' poiché potrebbe essere identica all'interfaccia '<nomeinterfaccia2>' per alcuni tipi di argomenti

Aggiornamento: novembre 2007

Cannot inherit interface '<interfacename1>' because it could be identical to interface '<interfacename2>' for some type arguments

Un'interfaccia generica eredita più volte dall'altra interfaccia generica e due ereditarietà possono entrare in conflitto per determinati valori degli argomenti di tipo.

Le istruzioni seguenti possono generare questo errore.

Public Interface interfaceA(Of u)

End Interface

Public Interface derivedInterface(Of t1, t2)

Inherits interfaceA(Of t1), interfaceA(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, producendo un'ambiguità relativa alla versione a cui accedere.

ID errore: BC32120

Per correggere l'errore

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

    In alternativa

  • 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