Conditional 特性使得方法执行依赖于预处理符号。 Conditional 属性是 ConditionalAttribute 的别名,可以应用于方法特性类

比如说, Conditional 特性可以与 DEBUG 标识符一起使用,以启用调试生成(而非发布生成)中的跟踪和日志记录功能,如下例所示:

[Conditional("DEBUG")]
static void DebugMethod()
{
}

当调用标记有条件的方法时,只有在指定的预处理符号存在时,编译器才会将其包括在调用中,否则将忽略掉。该条件方法必须是类或结构声明中的方法,而且必须具有 void 返回类型。

与将方法封闭在 #if…#endif 块内相比,Conditional 更简洁且较不容易出错

Reference Links