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


Член с модификатором MustOverride, не совместимый с CLS, не допускается в CLS-совместимом <имяКласса>

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

Non-CLS-compliant 'MustOverride' member is not allowed in a CLS-compliant <classname>

Класс помечен как <CLSCompliant(True)>, но содержит свойство MustOverride или процедуру, помеченную как <CLSCompliant(False)>, либо не помеченную.

Если класс является совместимым с Спецификация CLS (CLS), приложение, использующее этот класс, использует только члены, которые также помечены как <CLSCompliant(True)>, и игнорирует не помеченные члены. Однако приложение не может игнорировать свойство или процедуру MustOverride, поскольку оно должно получить к ним доступ для переопределения.

При применении CLSCompliantAttribute к элементу программирования параметру isCompliant атрибута присваивается значение True или False, чтобы указать соответствие или несоответствие. Значение по умолчанию для этого параметра отсутствует, поэтому значение необходимо указать.

Если к элементу не применяется атрибут CLSCompliantAttribute, элемент считается несовместимым.

По умолчанию это сообщение является предупреждением. Дополнительные сведения о скрытии предупреждений или обработке предупреждений в качестве ошибок см. в разделе Настройка предупреждений в Visual Basic.

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

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

  • Если требуется CLS-совместимость и контроль кода класса источника, пометьте элемент как <CLSCompliant(True)>.

  • Если требуется CLS-совместимость и не требуется контроль над кодом исходного класса, или он не определен как совместимый, определите этот член внутри другого класса.

  • Если требуется, чтобы этот член оставался несовместимым, удалите ключевое слово MustOverride из его определения, удалите CLSCompliantAttribute из определения класса или пометьте класс как <CLSCompliant(False)>.

См. также

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

Написание CLS-совместимого кода

Ссылки

MustOverride