Поделиться через


MustOverride не может быть указан в <имяПроцедуры>, поскольку он находится в разделяемом типе, объявленном NotInheritable в другом разделяемом определении

Обновлен: Ноябрь 2007

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

Процедура или свойство объявлены как MustOverride внутри класса, который определен в нескольких разделяемых объявлениях, но одно из разделяемых определений указывает NotInheritable для класса.

После разделения определения класса среди нескольких разделяемых объявлений, компилятор обрабатывает класс как объединение всех его разделяемых объявлений. Это применяется не только к членам, но и к реализации, наследованию и уровню доступа.

Чтобы переопределить процедуру или свойство, класс должен наследовать его из базового класса. Таким образом, чтобы указать MustOverride для процедуры или свойства в базовом классе, необходимо указать MustInherit для класса. Поскольку они являются взаимно несовместимы, нельзя указать MustInherit и NotInheritable для одного класса.

Идентификатор ошибки: BC30927

Исправление данной ошибки

  • Если свойство или процедура должны быть переопределены, удалите ключевое слово NotInheritable из разделяемого объявления, в котором оно находится.

  • Если класс должен быть NotInheritable, удалите ключевое слово MustOverride из процедуры или свойства. Его нельзя переопределить, поскольку он не может наследовать класс.

См. также

Основные понятия

Основы наследования

Ссылки

Partial (Visual Basic)

MustOverride

MustInherit

NotInheritable