Partager via


Le membre '<NomClasse>.<NomProcédure>' qui correspond à cette signature ne peut pas être substitué, car la classe '<NomClasse>' contient plusieurs membres avec le même nom et la même signature : <ListeSignatures>

Mise à jour : novembre 2007

Member '<classname>.<procedurename>' that matches this signature cannot be overridden because the class '<classname>' contains multiple members with this same name and signature: <signaturelist>

Une procédure ou une propriété tente de substituer une procédure ou une propriété héritée, mais le compilateur détecte plusieurs versions de la procédure ou de la propriété de base contenant le même nom et la même signature.

Cette erreur peut se produire dans le cas de types génériques construits, comme l'illustre le squelette des déclarations ci-après.

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

Étant donné que derivedClass hérite de baseClass qui fournit String à son paramètre de type t, les deux versions de doSomething dans baseClass acceptent des signatures identiques pour derivedClass. En conséquence, le compilateur ne peut pas déterminer la version à substituer.

ID d'erreur : BC30935

Pour corriger cette erreur

  • Modifiez le ou les arguments de type fournis à la classe de base afin qu'il n'existe pas une ou plusieurs signatures identiques des procédures ou des propriétés membres.

    - ou -

  • Si vous devez hériter de la classe de base le jeu de types d'arguments que vous utilisez, ne substituez pas la procédure ou la propriété mentionnée dans ce message d'erreur.

Voir aussi

Concepts

Substitution de propriétés et de méthodes

Référence

Overridable

Overrides