Impossible d'implémenter '<NomInterface1>.<NomMembre>', car son implémentation pourrait être en conflit avec l'implémentation de '<NomInterface2>.<NomMembre>' pour certains arguments de type
Mise à jour : novembre 2007
Cannot implement '<interfacename1>.<membername>' because its implementation could conflict with the implementation for '<interfacename2>.<membername>' for some type arguments
Une classe implémentant plusieurs interfaces génériques, l'une héritant de l'autre, deux implémentations d'un membre d'interface pourraient être en conflit pour certaines valeurs d'arguments de type.
Les instructions suivantes peuvent générer cette erreur.
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
iFace2 héritant d'iFace1 à l'aide de son propre paramètre de type (u), testClass implémenterait deux versions d'iFace1.testSub avec des signatures identiques si le même argument de type était passé à y et z. Cela produirait une ambiguïté à propos de la version à laquelle accéder.
ID d'erreur : BC32125
Pour corriger cette erreur
Modifiez la structure d'héritage des interfaces, afin que iFace1 ne puisse pas être implémentée avec deux arguments de type différents.
- ou -
Supprimez de l'instruction Implements l'une des interfaces provoquant le conflit d'implémentation.
Voir aussi
Concepts
Implements, mot clé et instruction
Types génériques en Visual Basic
Référence
Class, instruction (Visual Basic)