'MustOverride' non può essere specificato in '<nomeprocedura>' perché è in un tipo parziale dichiarato 'NotInheritable' in un'altra definizione parziale

Aggiornamento: novembre 2007

'MustOverride' cannot be specified on '<procedurename>' because it is in a partial type that is declared 'NotInheritable' in another partial definition

Una routine o una proprietà è dichiarata come MustOverride all'interno di una classe definita in più dichiarazioni parziali, ma una delle definizioni parziali specifica NotInheritable per la classe.

Quando la definizione di una classe viene divisa tra più dichiarazioni parziali, il compilatore considera tale classe come l'unione di tutte le relative dichiarazioni parziali. Questo riguarda non soltanto i membri, ma anche l'implementazione, l'ereditarietà e il livello di accesso.

Per eseguire l'override di una routine o una proprietà, una classe deve ereditarla da una classe base. Per specificare MustOverride per una routine o una proprietà in una classe base, di conseguenza, è necessario specificare MustInherit per la classe. Poiché MustInherit e NotInheritable sono in contraddizione fra loro, non è possibile specificarli entrambi per la medesima classe.

ID errore: BC30927

Per correggere l'errore

  • Se è necessario eseguire l'override della proprietà o della procedura, rimuovere la parola chiave NotInheritable dalla dichiarazione parziale in cui compare.

  • Se la classe deve essere NotInheritable, rimuovere la parola chiave MustOverride dalla routine o dalla proprietà. Non è possibile eseguirne l'override in quanto la classe non è ereditabile.

Vedere anche

Concetti

Nozioni fondamentali sull'ereditarietà

Riferimenti

Partial (Visual Basic)

MustOverride

MustInherit

NotInheritable