„MustOverride“ kann nicht für „<procedurename>“ angegeben werden, da es sich um einen partiellen Typ handelt, der in einer anderen partiellen Definition als „NotInheritable“ deklariert wurde

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

Wenn Sie die Definition einer Klasse zwischen mehreren partiellen Deklarationen aufteilen, behandelt der Compiler die Klasse als die Union all seiner 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 sie von ihrer Basisklasse erben. Wenn Sie daher MustOverride für eine Prozedur oder Eigenschaft in einer Basisklasse angegeben möchten, müssen Sie für die Klasse MustInherit angeben. Da sie sich gegenseitig ausschließen, können Sie nicht zugleich MustInherit und 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 Schlüsselwort NotInheritable aus der partiellen Deklaration, in der es auftritt.

  • Wenn die Klasse NotInheritablesein muss, entfernen Sie das Schlüsselwort MustOverride aus der Prozedur oder Eigenschaft. Sie können sie nicht überschreiben, da sie die Klasse nicht erben können.

Siehe auch