Impossibile eseguire l'override del membro '<nomeclasse>.<nomeprocedura>' corrispondente alla firma perché la classe '<nomeclasse>' contiene più membri con nome e firma uguali: <elencofirme>

Aggiornamento: 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>

Una routine o proprietà tenta l'override di una routine o proprietà ereditata, ma il compilatore rileva più di una versione della routine o proprietà base con lo stesso nome e firma.

Questo tipo di errore può verificarsi in una situazione relativa a tipi generici costruiti, come viene illustrato nelle seguenti strutture di dichiarazione.

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

Poiché derivedClass eredita baseClass fornendo String al parametro di tipo t, le due versioni di doSomething in baseClass riportano firme identiche per quanto riguarda derivedClass. Di conseguenza, il compilatore non è in grado di determinare su quale versione eseguire l'override.

ID errore: BC30935

Per correggere l'errore

  • Modificare l'argomento o gli argomenti di tipo forniti alla classe base in modo tale che non risultino una o più firme identiche delle routine o proprietà del membro.

    -oppure-

  • Se è necessario ereditare la classe base con l'insieme degli argomenti di tipo utilizzati, non eseguire l'override della routine o proprietà contenuta nel messaggio di errore.

Vedere anche

Concetti

Override di proprietà e metodi

Riferimenti

Overridable

Overrides