Impossibile implementare l'interfaccia '<nomeinterfaccia1>.<nomemembro>'. La sua implementazione potrebbe essere in conflitto con l'implementazione di un'altra interfaccia implementata '<nomeinterfaccia2>.<nomemembro2>' per alcuni argomenti di tipo

Aggiornamento: novembre 2007

Cannot implement '<interfacename1>.<membername>' because its implementation could conflict with the implementation for '<interfacename2>.<membername>' for some type arguments

Una classe implementa più di un'interfaccia generica, una delle quali eredita dall'altra, e le due implementazioni di un membro di interfaccia potrebbero essere in conflitto per determinati valori di argomenti di tipo.

Le istruzioni seguenti possono generare questo errore.

Public Interface iFace1(Of t)
    Sub testSub()
End Interface
Public Interface iFace2(Of u)
    Inherits iFace1(Of u)
End Interface
Public Class testClass(Of y, z)
    Implements iFace1(Of y), iFace2(Of z)
    Public Sub testSuby() Implements iFace1(Of y).testSub
    End Sub
    Public Sub testSubz() Implements iFace1(Of z).testSub
    End Sub
End Class

Dal momento che iFace2 eredita da iFace1 utilizzando il relativo parametro di tipo (u), testClass implementerebbe due versioni di iFace1.testSub con firme identiche se lo stesso argomento di tipo venisse passato a y e z. In questo modo si produrrebbe un'ambiguità relativa alla versione a cui accedere.

ID errore: BC32125

Per correggere l'errore

  • Modificare la struttura di ereditarietà delle interfacce in modo che iFace1 non possa essere implementata con due differenti argomenti di tipo.

    In alternativa

  • Rimuovere dall'istruzione Implements una delle interfacce risultanti nel conflitto di implementazione.

Vedere anche

Concetti

Parola chiave Implements e istruzione Implements

Tipi generici in Visual Basic

Riferimenti

Istruzione Class (Visual Basic)

Istruzione Interface (Visual Basic)

Istruzione Implements