Базовый тип не соответствует CLS, каковы причины этого предупреждения? - PullRequest
34 голосов
/ 25 октября 2010

Я получил предупреждение от предмета на одном из моих занятий.На самом деле класс очень прост, просто наследник моего базового базового типа.Также у меня есть несколько других наследников из этого универсального класса по всему решению, и таких предупреждений нет.

В чем может быть причина (ы) этого?Компилятор не дает понять, почему базовый тип не совместим с CLS

Ответы [ 2 ]

55 голосов
/ 25 октября 2010

Возможно, у вас есть [assembly:CLSCompliant(true)] где-то в этом конкретном проекте.Это запускает компилятор для проверки всех типов на соответствие CLS.Вы можете переопределить это для типа или метода или чего-то еще с помощью [CLSCompliant(false)].

4 голосов
/ 25 октября 2010

Я полагаю, что у вас есть производный тип, помеченный как CLSCompliant, но база не является.

Написание кода, совместимого с CLS Канонический пример использует UInt32, который не является частью CommonСпецификация языка (CLS) - следовательно, вам необходимо использовать Int64 для совместимости с CLS или удалить атрибут (объявить себя не совместимым с cls).

Требуется больше кода для идентификации строки кода, вызывающей сбой.Больше информации о ошибка вы получаете.

...