Прочитать на английском

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


Член, не совместимый с CLS "MustOverride", не допускается в имени класса, совместимого <с CLS.>

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

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

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

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

По умолчанию данное сообщение является предупреждением. Сведения о сокрытии предупреждений или обработке предупреждений как ошибок см. в разделе Configuring Warnings in Visual Basic.

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

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

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

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

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

См. также