Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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
Riferimenti
Istruzione Class (Visual Basic)