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 из процедуры или свойства. Его нельзя переопределить, поскольку он не может наследовать класс.