No se puede implementar el miembro '<interfacename>.<procedurename>' que coincide con esta signatura porque la interfaz '<interfacename>' contiene varios miembros que tienen un nombre y una signatura iguales a estos: <signaturelist>

Un procedimiento o propiedad intenta implementar un procedimiento o una propiedad definida en una interfaz implementada, pero el compilador encuentra más de una versión del procedimiento o propiedad de interfaz con el mismo nombre y signatura.

Este error puede producirse en una situación con tipos genéricos construidos, como se muestra en las siguientes declaraciones de esqueleto.

Public Interface baseInterface(Of t)  
    Sub doSomething(ByVal inputValue As String)  
    Sub doSomething(ByVal inputValue As t)  
End Class  
Public Class implementingClass  
    Implements baseInterface(Of String)  
    Sub doSomething(ByVal inputValue As String) _  
        Implements baseInterface(Of String).doSomething  
    End Sub  
End Class  

Dado que implementingClass implementa baseInterface que proporciona String a su parámetro de tipo t, las dos versiones de doSomething en baseInterface tienen signaturas idénticas en lo que se refiere a implementingClass . Como resultado, el compilador no puede determinar qué versión debe implementar.

Identificador de error: BC30937

Para corregir este error

  • Cambie el argumento o los argumentos de tipo que suministra a la clase base para que no produzcan una o varias signaturas idénticas de procedimientos o propiedades de miembro.

    O bien

  • No implemente esta clase base. No puede implementarla con el conjunto de argumentos de tipo que está usando, porque debe implementar cada uno de sus miembros.

Consulte también