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

ConditionalAttribute 类

2013/12/13

指示编译器应忽略方法调用或属性,除非已定义指定的条件编译符号。

System.Object
  System.Attribute
    System.Diagnostics.ConditionalAttribute

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

[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method, AllowMultiple = true)]
public sealed class ConditionalAttribute : Attribute

ConditionalAttribute 类型公开以下成员。

  名称说明
公共方法ConditionalAttribute初始化 ConditionalAttribute 类的新实例。
返回顶部

  名称说明
公共属性ConditionString获取与 ConditionalAttribute 特性相关的条件编译符号。
返回顶部

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

可以将 ConditionalAttribute 特性应用于方法和类。但是,仅当类型派生自 Attribute 时,对类使用此特性才有效。如果将 ConditionalAttribute 应用于任何其他类型,它将被忽略或产生编译器警告或错误消息。

在将 ConditionalAttribute 应用于方法时,会指示编译器:如果未定义与 ConditionalAttribute 关联的条件编译符号,则不应将对此方法的调用编译为 Microsoft 中间语言 (MSIL)。在将 ConditionalAttribute 应用于特性时,会指示:如果未定义条件编译符号,则不应将此特性发送至元数据。传递给此方法或特性的任何参数仍然由编译器检查类型。

可以使用下面的技术来定义条件编译符号:

  • 编译器命令行选项(例如,/define:DEBUG)。

  • 操作系统 shell 中的环境变量(例如,set DEBUG=1)。

  • 源代码中的杂注(例如,用于定义编译变量的 #define DEBUG,以及用于取消定义它的 #undef DEBUG)。

允许符合公共语言规范 (CLS) 的编译器忽略 ConditionalAttribute。C#、J# 和 Visual Basic 编译器支持 ConditionalAttribute;C++ 和 JScript 编译器不支持此特性。

ConditionalAttribute 可应用于在 Debug 类中定义的方法。

Windows Phone OS

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

Windows Phone

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

显示: