Тип параметра <имяПараметра> не является CLS-совместимым
Обновлен: Ноябрь 2007
Type of parameter '<parametername>' is not CLS-compliant
Процедура помечена как <CLSCompliant(True)>, но объявляет параметр с типом, который помечен как <CLSCompliant(False)>, не помечен или не квалифицирован, так как он является несовместимым типом.
Для совместимости процедуры с Спецификация CLS (CLS) она должна использовать только CLS–совместимые типы. Это относится к типам параметров, возвращаемому типу и типам всех ее локальных переменных.
Следующие типы данных Visual Basic не являются CLS–совместимыми:
При применении CLSCompliantAttribute к элементу программирования параметру isCompliant атрибута присваивается значение True или False, чтобы указать соответствие или несоответствие. Значение по умолчанию для этого параметра отсутствует, поэтому значение необходимо указать.
Если к элементу не применяется атрибут CLSCompliantAttribute, элемент считается несовместимым.
По умолчанию это сообщение является предупреждением. Дополнительные сведения о скрытии предупреждений или их обработке как ошибок см. в разделе Настройка предупреждений в Visual Basic.
Идентификатор ошибки: BC40028
Исправление этой ошибки
Если процедура должна принимать параметр этого конкретного типа, то удалите CLSCompliantAttribute. Процедура не может быть CLS–совместимой.
Если процедура должна быть CLS–совместимой, то измените тип этого параметра на ближайший CLS–совместимый тип. Например, вместо UInteger можно использовать Integer, если не требуется значение диапазона, превышающее 2 147 483 647. Если необходим расширенный диапазон, можно заменить UInteger на Long.
Если производится взаимодействие с объектами автоматизации или COM–объектами, то имейте в виду, что некоторые типы имеют ширину данных, отличающуюся от ширины данных в .NET Framework . Например, в других средах тип int часто является 16-разрядным. Если из таких компонентов принимается 16-разрядное целое число, следует объявить его в качестве Short вместо Integer в управляемом коде Visual Basic.