Freigeben über


MustOverride kann nicht für '<Prozedurname>' angegeben werden, da es sich in einem partiellen Typ befindet, der in einer anderen partiellen Deklaration als NotInheritable deklariert wurde

Aktualisiert: November 2007

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

Eine Prozedur oder Eigenschaft ist in einer Klasse als MustOverride deklariert, die in mehreren partiellen Deklarationen definiert ist, doch eine der partiellen Definitionen gibt NotInheritable für die Klasse an.

Wenn Sie die Definition einer Klasse zwischen mehreren partiellen Deklarationen aufteilen, behandelt der Compiler den Typ als die Vereinigung aller ihrer partiellen Deklarationen. Dies gilt nicht nur für die Member, sondern auch für die Implementierung, Vererbung und Zugriffsebene.

Um eine Prozedur oder Eigenschaft zu überschreiben, muss eine Klasse die Prozedur bzw. Eigenschaft von einer Basisklasse erben. Um für eine Prozedur oder Eigenschaft in einer Basisklasse MustOverride anzugeben, müssen Sie daher MustInherit für die Klasse angeben. Da sich die beiden Schlüsselwörter widersprechen, können Sie nicht sowohl MustInherit als auch NotInheritable für die gleiche Klasse angeben.

Fehler-ID: BC30927

So beheben Sie diesen Fehler

  • Wenn die Eigenschaft oder Prozedur überschrieben werden muss, entfernen Sie das NotInheritable-Schlüsselwort aus der partiellen Deklaration, in der es angegeben ist.

  • Wenn die Klasse NotInheritable sein muss, entfernen Sie das MustOverride-Schlüsselwort aus der Prozedur oder Eigenschaft. Sie können es nicht überschreiben, da Sie die Klasse nicht vererben können.

Siehe auch

Konzepte

Grundlagen der Vererbung

Referenz

Partial (Visual Basic)

MustOverride

MustInherit

NotInheritable