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的语言必须支持的功能。 CLS 合规性主要关注希望确保其库以任何面向.NET的语言访问的库开发人员。 有关详细信息,请参阅 语言独立性和 Language-Independent 组件

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

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

  • 程序集不符合 CLS。

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

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

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

应用于程序集或模块的属性必须在 C# usingImports Visual Basic) 子句和代码之前发生。

有关使用属性的详细信息,请参阅 “属性”。

注释

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

适用于

另请参阅