Non è possibile specificare 'MustOverride' in '<procedurename>' perché si trova in un tipo parziale dichiarato come 'NotInheritable' in un'altra definizione parziale

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 si divide la definizione di una classe in diverse dichiarazioni parziali, il compilatore considera la classe come l'unione di tutte le sue 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. Dal momento che 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 routine, 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 perché la classe non è ereditabile.

Vedi anche