如何像变量一样使用DEBUG常量

时间:2018-09-17 06:29:22

标签: c# .net debugging

也许是重复的-我只是想不出要用什么谷歌...

在C#中,是否可以像变量一样使用DEBUG常量,例如

Boolean debugging = DEBUG;

我想避免这种情况:

#if DEBUG
    Boolean debugging = true;
#else
    Boolean debugging = false;
#endif

谢谢!

2 个答案:

答案 0 :(得分:2)

不是。典型的方式是您明确不想做的方式。但是,如果很难设置为不使用#if,则可以使用ConditionalAttribute进行类似的操作。例如:

public class Program {
    public static void Main(String[] args) {               
        Boolean debug = false;
        CheckForDebug(ref debug);

        Console.WriteLine("debug = " + debug);
    }

    [Conditional("DEBUG")]
    public static void CheckForDebug(ref Boolean debug)
    {
        debug = true;
    }
}

除了您在此处提出的特定问题之外,这可能对您有用。 ConditionalAttribute对于确保仅在定义DEBUG(或任何预处理器符号)时才运行返回void的方法很有用。

示例:http://rextester.com/JXHE87904

答案 1 :(得分:0)

典型方法是像这样使用它:

#if DEBUG
   Boolean debugging = true;
#else
   Boolean debugging = false;
#endif

干杯!