或C#中的Conditional属性中的运算符

时间:2015-12-02 08:43:42

标签: c#

在C#中,我们可以根据构建类型区分代码执行。默认情况下,我们定义了Debug和Release类型 我们可以使用#if指令来执行此操作:

#if DEBUG
    public void Foo()
    { ... }
#endif

但我们也可以使用Conditional属性:

[Conditional("DEBUG")]
public void Foo()
{ ... }

第二种解决方案甚至声称更易于维护(参见:Bill Wagner的有效C#)。

我的问题是 - 如何在许多构建配置中使用Conditional属性?有可能以某种方式使用or运算符吗?我问,因为我希望在例如DEBUG和BAR构建配置中执行一些Foo方法。那么呢?

1 个答案:

答案 0 :(得分:53)

您可以使用多个逗号分隔的条件属性,例如

[Conditional("DEBUG"), Conditional("BAR")]

这将是您理想的行为 - 它们将在逻辑上进行OR运算。

请参阅MSDN以供参考。