No se puede invalidar el miembro '<classname>.<procedurename>' que coincide con esta signatura porque la clase '<classname>' contiene varios miembros que tienen el mismo nombre y signatura: <signaturelist>

Un procedimiento o propiedad intenta invalidar un procedimiento o una propiedad heredados, pero el compilador encuentra más de una versión del procedimiento o propiedad de base con el mismo nombre y firma.

Este error puede producirse en una situación con tipos genéricos construidos, como se muestra en las siguientes declaraciones 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  

Dado que derivedClass hereda baseClass que proporciona String a su parámetro de tipo t, las dos versiones de doSomething en baseClass tienen firmas idénticas en lo que se refiere a derivedClass . Como resultado, el compilador no puede determinar qué versión debe invalidar.

Identificador de error: BC30935

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

  • Si necesita heredar la clase base con el conjunto de argumentos de tipo que está usando, no invalide el procedimiento ni la propiedad citados en este mensaje de error.

Consulte también