【发布时间】:2016-11-18 16:18:51
【问题描述】:
使用 DEBUG 配置,我可以使用这种类型的语法打开和关闭行为:
#if DEBUG
Console.WriteLine("Debug");
#else
Console.WriteLine("Not Debug");
#endif
但是,如果我设置了不同的配置,比如:TEST,那么这不起作用:
#if TEST
Console.WriteLine("Test");
#else
Console.WriteLine("Not Test");
#endif
有没有办法检查这些?
【问题讨论】:
-
将“TEST”添加到项目属性 -> 构建 -> 条件编译符号,就可以了
-
记录在案 - 您实际上并没有检查程序中的配置。 #if 是一个预编译器指令,这意味着它正在编译过程中执行。所以#if .. #else 结构不是你程序的一部分。
-
注意,您可能需要重新启动 Visual Studio 才能在编辑器中正确显示。我在 VS 2017 上做过。但是,即使没有重新启动,编译也会按预期工作。似乎是指令渲染的问题。
标签: c# .net c-preprocessor preprocessor-directive