Membro '<classname>.<procedurename>' que corresponde a esta assinatura não pode ser substituído porque a classe '<classname>' contém vários membros com este mesmo nome e assinatura: <signaturelist>

Um procedimento ou propriedade tenta substituir um procedimento ou propriedade herdada, mas o compilador encontra mais de uma versão do procedimento base ou propriedade 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 Class baseClass(Of t)  
    Public Overridable Sub doSomething(ByVal inputValue As String)  
    End Sub  
    Public Overridable Sub doSomething(ByVal inputValue As t)  
    End Sub  
End Class  
Public Class derivedClass  
    Inherits baseClass(Of String)  
    Overrides Sub doSomething(ByVal inputValue As String)  
    End Sub  
End Class  

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

ID de erro: BC30935

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-

  • Se você precisar herdar a classe base com o conjunto de argumentos de tipo que está usando, não substitua o procedimento ou a propriedade citada nesta mensagem de erro.

Consulte também