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
属性

示例

以下示例将 应用于 CLSCompliantAttribute 整个程序集。

using System;
    [assembly: CLSCompliant(true)]

以下声明生成 CLS 符合性警告,因为未在 CLS 中指定类型 UInt32

public int SetValue(UInt32 value);

如果声明标记为 CLSCompliantAttribute,则不会生成编译器警告或错误。

[CLSCompliant(false)]
 public int SetValue(UInt32 value);

注解

特性 CLSCompliantAttribute 用于指示特定程序元素是否符合公共语言规范 (CLS) ,该规范定义了面向 .NET 的任何语言必须支持的功能。 库开发人员希望确保以任何面向 .NET 的语言访问其库时,主要关注 CLS 合规性。 有关详细信息,请参阅 语言独立性和Language-Independent组件

可以将 特性应用于 CLSCompliantAttribute 以下程序元素:程序集、模块、类、结构、枚举、构造函数、方法、属性、字段、事件、接口、委托、参数和返回值。 但是,CLS 符合性的概念仅适用于程序集、模块、类型和类型的成员,而不是成员签名的一部分。 因此, CLSCompliantAttribute 在应用于参数或返回值程序元素时将被忽略。

如果未 CLSCompliantAttribute 应用于程序元素,则默认情况下:

  • 程序集不符合 CLS。

  • 仅当其封闭类型或程序集符合 CLS 时,该类型才符合 CLS。

  • 仅当类型符合 CLS 时,类型的成员才符合 CLS。

如果程序集标记为符合 CLS,则必须使用 false 参数标记CLSCompliantAttribute程序集中任何不符合 CLS 的公开类型。 同样,如果类标记为符合 CLS,则必须单独标记不符合 CLS 的所有成员。 所有不符合的成员都必须提供相应的符合 CLS 的替代项。

应用于程序集或模块的属性必须出现在 Visual Basic) Imports 子句中的 C# using (之后和代码之前。

有关使用特性的详细信息,请参阅 特性

备注

当前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)

适用于

另请参阅