信息
您所需的主题如下所示。但此主题未包含在此库中。

CLSCompliantAttribute 类

2013/12/13

指示程序元素是否符合公共语言规范 (CLS)。无法继承此类。

System.Object
  System.Attribute
    System.CLSCompliantAttribute

Namespace:  System
程序集:  mscorlib(位于 mscorlib.dll 中)

[AttributeUsageAttribute(AttributeTargets.All, Inherited = true, AllowMultiple = false)]
public sealed class CLSCompliantAttribute : Attribute

CLSCompliantAttribute 类型公开以下成员。

  名称说明
公共方法CLSCompliantAttribute用布尔值初始化 CLSCompliantAttribute 类的实例,该值指示所指示的程序元素是否符合 CLS。
返回顶部

  名称说明
公共属性IsCompliant获取指示所指示的程序元素是否符合 CLS 的布尔值。
返回顶部

  名称说明
公共方法Equals基础结构。 返回一个值,该值指示此实例是否与指定的对象相等。 (从 Attribute 继承。)
受保护的方法Finalize允许 Object 在垃圾回收器回收该对象之前尝试释放资源并执行其他清理操作。 (从 Object 继承。)
公共方法GetHashCode返回此实例的哈希代码。 (从 Attribute 继承。)
公共方法GetType获取当前实例的 Type (从 Object 继承。)
公共方法Match当在派生类中重写时,返回一个指示此实例是否等于指定对象的值。 (从 Attribute 继承。)
受保护的方法MemberwiseClone创建当前 Object 的浅表副本。 (从 Object 继承。)
公共方法ToString返回一个字符串,它表示当前的对象。 (从 Object 继承。)
返回顶部

可以对下列程序元素应用 CLSCompliantAttribute 特性:程序集、模块、类、结构、枚举、构造函数、方法、属性、字段、事件、接口、委托、参数和返回值。不过,CLS 遵从性的概念仅对程序集、模块、类型和类型成员有意义,对成员签名的各部分没有意义。因此,CLSCompliantAttribute 在应用于参数或返回值程序元素时被忽略。

如果没有将任何 CLSCompliantAttribute 应用于程序元素,则默认情况下:

  • 程序集不符合 CLS。

  • 只有当类型的封闭类型或程序集符合 CLS 时,该类型才符合 CLS。

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

如果程序集被标记为符合 CLS,则程序集中不符合 CLS 的任何公共地公开的类型都必须由使用 false 参数的 CLSCompliantAttribute 来加以标记。同样,如果类被标记为符合 CLS,必须分别标记所有不符合 CLS 的成员。所有不符合 CLS 的成员必须提供符合 CLS 的相应替换成员。

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

说明注意:

当前的 Microsoft Visual Basic 编译器有意不生成是否符合 CLS 的警告,但是,该编译器以后的版本将会发出此警告。

下面的示例将 CLSCompliantAttribute 应用到整个程序集。

using System;
    [assembly:CLSCompliant(true)]

下面的声明会生成一个 CLS 遵从性警告,原因是 CLS 中没有指定 UInt32 类型。

 public int SetValue(UInt32 value);

如果用 CLSCompliantAttribute 标记此声明,则不生成任何编译器警告或错误。

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

Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

此类型的所有公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

显示: