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.