Тип члена <имяЧлена> не является CLS-совместимым
Обновлен: Ноябрь 2007
Type of member '<membername>' is not CLS-compliant
Тип данных, указанный для этого элемента не является компонентом Спецификация CLS (CLS). Это не ошибка в компоненте, поскольку .NET Framework и Visual Basic поддерживают этот тип данных. Тем не менее другой компонент, написанный в строгом CLS-совместимом коде, может не поддерживать этот тип данных. Такой компонент может быть неспособен успешно взаимодействовать с данным компонентом.
Следующие типы данных Visual Basic не являются CLS-совместимыми:
По умолчанию это сообщение является предупреждающим. Дополнительные сведения о скрытии предупреждений и их обработке как ошибок см. в разделе Настройка предупреждений в Visual Basic.
Идентификатор ошибки: BC40025
Чтобы исправить данную ошибку
Если компонент взаимодействует только с другими компонентами .NET Framework или не взаимодействует с какими-либо иными компонентами, нет необходимости изменять что-либо.
При взаимодействии с компонентом, записанном не для .NET Framework, можно определить (либо через отражение, либо из документации), поддерживает ли он этот тип данных. Если этот тип данных поддерживается, нет необходимости изменять что-либо.
При взаимодействии с компонентом, который не поддерживает этот тип данных, необходимо заменить его на наиболее подходящий CLS-совместимый тип. Например, вместо UInteger можно использовать Integer, если не требуется значение диапазона, превышающее 2 147 483 647. Если необходим расширенный диапазон, можно заменить UInteger на Long.
Если производится взаимодействие с объектами автоматизации или COM-объектами, то следует иметь в виду, что некоторые типы имеют ширину данных, отличающуюся от ширины данных в .NET Framework. Например, в других средах uint часто является 16-битным. Если производится передача 16-разрядного аргумента такому компоненту, следует объявить ее как UShort вместо UInteger в управляемом коде Visual Basic.
См. также
Основные понятия
Написание CLS-совместимого кода