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 definido 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.

Esse erro pode ocorrer em uma situação com tipos genéricos construídos, como ilustram as declarações de esqueleto a seguir.

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  

Como o implementingClass implementa o fornecimento de baseInterface para String ao seu parâmetro de tipo t, as duas versões do doSomething no baseInterface assumem assinaturas idênticas em relação ao implementingClass. Como resultado, o compilador não pode determinar qual versão implementar.

ID do erro: BC30937

Para corrigir este erro

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

    -ou-

  • Não implemente essa classe base. Não é possível implementá-lo com o conjunto de argumentos de tipo que você está usando, pois você deve implementar cada um de seus membros.

Confira também