Condividi tramite


Non è possibile eseguire l'override del membro '<classname>.<procedurename>' corrispondente alla firma perché la classe '<classname>' contiene più membri con nome e firma uguali: <signaturelist>

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

Questo errore può verificarsi in una situazione con tipi generici costruiti, come illustrano le seguenti dichiarazioni di struttura.

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  

Dal momento che derivedClass eredita baseClass fornendo String al relativo parametro di tipo t, le due versioni di doSomething in baseClass assumono firme identiche per quanto riguarda derivedClass . Di conseguenza, il compilatore non riesce a determinare di quale versione eseguire l'override.

ID errore: BC30935

Per correggere l'errore

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

    oppure

  • Se è necessario ereditare la classe base con il set di argomenti di tipo in uso, non sostituire la routine o la proprietà citate in questo messaggio di errore.

Vedi anche