Тип ограничения универсального параметра <имяТипа> не является CLS-совместимым
Обновлен: Ноябрь 2007
Generic parameter constraint type <typename> is not CLS-compliant
Универсальный тип помечен как <CLSCompliant(True)>, но ограничение одного из его параметров типа указывает тип, который помечен как <CLSCompliant(False)>, не помечен или не квалифицирован, так как он является несовместимым типом.
Для совместимости типа с Спецификация CLS (CLS) он должен использовать только CLS-совместимые типы. Это относится также к ограничениям на параметры типа универсального типа.
Следующие типы данных Visual Basic не являются CLS-совместимыми:
При применении атрибута CLSCompliantAttribute к программному элементу параметру isCompliant атрибута присваивается значение True или False, чтобы указать совместимость или несовместимость соответственно. Значение по умолчанию для этого параметра отсутствует, поэтому значение необходимо указать.
Если к элементу не применяется атрибут CLSCompliantAttribute, то он считается несовместимым.
По умолчанию это сообщение является предупреждением. Дополнительные сведения о скрытии предупреждений или их обработке как ошибок см. в разделе Настройка предупреждений в Visual Basic.
Идентификатор ошибки: BC40040
Исправление этой ошибки
Если универсальный тип должен принимать тип параметра, ограниченный этим конкретным типом, то удалите CLSCompliantAttribute. Тип не может быть CLS-совместимым.
Если универсальный тип должен быть CLS-совместимым, то измените тип этого ограничения на ближайший CLS-совместимый тип. Например, вместо UInteger можно использовать Integer, если не требуется значение диапазона, превышающее 2 147 483 647. Если необходим расширенный диапазон, можно заменить UInteger на Long.