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

Aggiornamento: novembre 2007

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

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

Questo errore può essere generato dalle istruzioni seguenti.

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

Se derivedInterface è costruita o implementata specificando lo stesso tipo sia per t1 che per t2, deve ereditare due versioni di interfaceX con argomenti di tipo identici. Le istruzioni dell'esempio creerebbero ambiguità circa la versione cui accedere.

ID errore: BC32121

Per correggere l'errore

  • Cambiare uno degli argomenti di tipo forniti all'interfaccia derivata in modo che non vi sia conflitto.

    -oppure-

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

Vedere anche

Concetti

Cenni preliminari sulle interfacce

Nozioni fondamentali sull'ereditarietà

Tipi generici in Visual Basic

Riferimenti

Istruzione Interface (Visual Basic)

Istruzione Inherits