Каков атрибут 'CLSCompliant' в.NET?

вы можете использовать свойство видимости css ....

видимость: видимый | скрытый | свернуть | начальный | наследовать;

или создать className с именем hide

.hide{
visbibility:hidden;
}

, а затем добавить className к опции, используя JS

162
задан BACON 15 May 2018 в 03:17
поделиться

4 ответа

Вы отмечаете классы с атрибутом CLSCompliant, когда Вы хотите удостовериться, что он может использоваться любым другим языком.NET. Это основные правила:

  1. Неподписанные типы не должны быть частью открытого интерфейса класса. То, что это означает, является общедоступными полями, не должен иметь неподписанных типов как uint или ulong, открытые методы не должны возвращать неподписанные типы, параметры, переданные государственной функции, не должны иметь неподписанных типов. Однако неподписанные типы могут быть частью членов парламента, не занимающих официального поста.

  2. Небезопасные типы как указатели не должны использоваться с общедоступными участниками. Однако они могут использоваться с членами парламента, не занимающими официального поста.

  3. Имена классов и имена элемента не должны отличаться только на основе их случая. Например, у нас не может быть двух методов под названием MyMethod и MYMETHOD.

  4. свойства Only и методы могут быть перегружены, Операторы не должны быть перегружены.

171
ответ дан Otávio Décio 23 November 2019 в 21:22
поделиться

Это говорит другим потребителям Вашего кода, что это CLS-совместимо и также делает компилятор C# проверка , что это CLS-совместимо для Вас.

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

44
ответ дан vcsjones 23 November 2019 в 21:22
поделиться

CLS-совместимый подмножество полного спектра языка, позволенного CLR. Это ограничивает его подмножествами, которые, вероятно, доступны большинством языков, которые предназначаются для CLR. Это увеличивается, но не гарантирует, что Вашей библиотекой могут пользоваться все языки, предназначающиеся для CLR.

13
ответ дан JaredPar 23 November 2019 в 21:22
поделиться

Другие ответы корректны. Позвольте мне разъяснить некоторые вещи - CLS обозначает Общеязыковую спецификацию. Это - минимальный подшипник и требуемые опции языка, которые язык.NET должен реализовать и понять. Этот набор является подмножеством общая система типов , который определяет, как типы определяются в.NET.

Являющийся CLS-совместимым означает, что можно написать код, который может быть использован любым языком, который может компилироваться и работаться CLR. Но совместимость с CLS не требуется, давая Вам гибкость в случаях, где совместимость с CLS была бы трудна или невозможна сделать.

, Если Вы предназначаете свой код, который будет использован другими разработчиками, Ваш API (Ваши общедоступные классы и методы) должен быть CLS-совместимым. Необходимо объявить это путем добавления CLSCompliantAttribute к блокам. Если Вы не пишете для других, совместимость с CLS не необходима, хотя FxCop ( Платформа Полицейский) не согласился бы со мной.

, Когда Ваш блок отмечен с CLSCompliantAttribute, компилятор будет (должен!) проверяют Ваш код, чтобы видеть, нарушит ли при компиляции он какое-либо из правил CLS (часть из который упомянутый ocdecio), и сообщите о нарушениях Вам для фиксации.

38
ответ дан Peter Mortensen 23 November 2019 в 21:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: