Membro '<interfacename>.<procedurename>' que corresponde a esta assinatura não pode ser implementado porque a interface '<interfacename>' contém vários membros com este mesmo nome e assinatura: <signaturelist>

Um procedimento ou propriedade tenta implementar um procedimento ou propriedade definida em uma interface implementada, mas o compilador encontra mais de uma versão do procedimento ou propriedade da interface com o mesmo nome e assinatura.

Este erro pode ocorrer em uma situação com tipos genéricos construídos, como ilustram as seguintes declarações 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  

Porque implementingClass implementa baseInterface o fornecimento String ao seu parâmetro ttype , as duas versões do doSomething in baseInterface assumem assinaturas idênticas no que diz respeito ao implementingClass assunto. Como resultado, o compilador não pode determinar qual versão implementar.

ID de erro: BC30937

Para corrigir este erro

  • Altere o argumento de tipo ou argumentos fornecidos à classe base para que ele não resulte em uma ou mais assinaturas idênticas de procedimentos ou propriedades de membros.

    -or-

  • Não implemente esta classe base. Você não pode implementá-lo com o conjunto de argumentos de tipo que você está usando, porque você deve implementar cada um de seus membros.

Consulte também