No se puede implementar '<interfacename1>.<membername>' porque su implementación podría entrar en conflicto con la implementación de '<interfacename2>.<membername>' de algunos argumentos de tipo.

Una clase implementa más de una interfaz genérica, una de las cuales se hereda de la otra, y dos implementaciones de un miembro de interfaz podría entrar en conflicto para ciertos valores de argumentos de tipo.

Las instrucciones siguientes pueden generar este error.

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  

Puesto que iFace2 hereda de iFace1 usando su propio parámetro de tipo (u), testClass implementaría dos versiones de iFace1.testSub con firmas idénticas si se pasa el mismo argumento de tipo a y y z. Esto produciría ambigüedad sobre a qué versión se debe acceder.

Identificador de error: BC32125

Para corregir este error

  • Cambie la estructura de herencia de las interfaces para que iFace1 no se pueda implementar con dos argumentos de tipo diferente.

    O bien

  • Quite de la instrucción Implements las interfaces que produzcan el conflicto de implementación.

Consulte también