CLSCompliantAttribute Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает, соответствует ли программный элемент спецификации CLS. Этот класс не наследуется.
public ref class CLSCompliantAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)]
public sealed class CLSCompliantAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)]
[System.Serializable]
public sealed class CLSCompliantAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class CLSCompliantAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)>]
type CLSCompliantAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)>]
[<System.Serializable>]
type CLSCompliantAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.All, AllowMultiple=false, Inherited=true)>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CLSCompliantAttribute = class
inherit Attribute
Public NotInheritable Class CLSCompliantAttribute
Inherits Attribute
- Наследование
- Атрибуты
Примеры
В следующем примере применяется CLSCompliantAttribute ко всей сборке.
using System;
[assembly: CLSCompliant(true)]
Следующее объявление создает предупреждение о соответствии CLS, так как тип UInt32 не указан в CLS.
public int SetValue(UInt32 value);
Если объявление помечается с CLSCompliantAttributeпомощью предупреждения компилятора или ошибки не создается.
[CLSCompliant(false)]
public int SetValue(UInt32 value);
Комментарии
Атрибут CLSCompliantAttribute используется для указания того, соответствует ли определенный элемент программы спецификации CLS, который определяет функции, которые должны поддерживать любой язык, предназначенный для .NET. Соответствие CLS в основном относится к разработчикам библиотек, которые хотят убедиться, что их библиотеки доступны на любом языке, который предназначен для .NET. Дополнительные сведения см. в разделе о независимости языка и компонентах Language-Independent.
Атрибут можно применить CLSCompliantAttribute к следующим элементам программы: сборка, модуль, класс, структура, конструктор, метод, свойство, поле, событие, интерфейс, делегат, параметр и возвращаемое значение. Однако понятие соответствия CLS имеет смысл только для сборок, модулей, типов и элементов типов, а не частей подписи члена. Следовательно, CLSCompliantAttribute игнорируется при применении к элементам программы параметров или возвращаемых значений.
Если к элементу программы не CLSCompliantAttribute применяется, по умолчанию:
Сборка не соответствует CLS.
Тип соответствует CLS только в том случае, если его вложенный тип или сборка соответствует CLS.
Элемент типа является CLS-совместимым только в том случае, если тип соответствует CLS.
Если сборка помечена как CLS-совместимая, любой общедоступный тип в сборке, которая не соответствует CLS, должна быть помечена с CLSCompliantAttribute помощью аргумента false . Аналогичным образом, если класс помечен как CLS-совместимый, необходимо пометить все элементы, которые не соответствуют CLS. Все несоответствующие члены должны предоставлять соответствующие альтернативы, совместимые с CLS.
Атрибуты, применяемые к сборкам или модулям, должны возникать после предложений C# using (Imports в Visual Basic) и перед кодом.
Дополнительные сведения об использовании атрибутов см. в разделе "Атрибуты".
Note
Текущий компилятор Microsoft Visual Basic намеренно не создает предупреждение о соответствии CLS, однако будущий выпуск компилятора выдает это предупреждение.
Конструкторы
| Имя | Описание |
|---|---|
| CLSCompliantAttribute(Boolean) |
Инициализирует экземпляр CLSCompliantAttribute класса с логическим значением, указывающим, соответствует ли указанный элемент программы CLS. |
Свойства
| Имя | Описание |
|---|---|
| IsCompliant |
Возвращает логическое значение, указывающее, соответствует ли указанный элемент программы CLS. |
| TypeId |
При реализации в производном классе получает уникальный идентификатор для этого Attribute. (Унаследовано от Attribute) |
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту. (Унаследовано от Attribute) |
| GetHashCode() |
Возвращает хэш-код для этого экземпляра. (Унаследовано от Attribute) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| IsDefaultAttribute() |
При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса. (Унаследовано от Attribute) |
| Match(Object) |
При переопределении в производном классе возвращает значение, указывающее, равен ли этот экземпляр указанному объекту. (Унаследовано от Attribute) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Извлекает сведения о типе объекта, который можно использовать для получения сведений о типе для интерфейса. (Унаследовано от Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к свойствам и методам, предоставляемым объектом. (Унаследовано от Attribute) |