在我看到的所有关于#if编译器指令的例子中,它们都使用了“DEBUG”。我可以以同样的方式使用“RELEASE”来排除在调试模式下编译时不想运行的代码吗?我想用这个块包围的代码会发送一堆电子邮件,我不想在测试时意外地发送这些邮件。


当前回答

为此,您可以使用#if(!DEBUG)。

其他回答

RELEASE没有定义,但是您可以使用

#if (!DEBUG)
  ...
#endif

“流行卡特林”说对了。基于构建类型控制定义提供了很大的灵活性。例如,您可以在同一个解决方案中拥有“DEBUG”、“DEMO”和“RELEASE”配置。这避免了使用两个不同的解决方案进行重复编程的需要。

因此,当定义RELEASE条件编译符号时,#if RELEASE或#if (RELEASE)的工作原理与#if DEBUG相同。

以下是来自“Pop Catalin”的帖子: 如果你想为发布配置定义一个RELEASE常量,请到: *项目属性->构建 *选择释放模式 *在条件编译符号文本框中输入:RELEASE

为什么不干脆

#if RELEASE
#undef DEBUG
#endif

另一个选择:

#If CONFIG = "Release" Then

....

#End If

不,不会的,除非你做点工作。

这里重要的部分是DEBUG到底是什么,它是编译器可以检查的一种定义的常量。

如果你检查项目属性,在Build选项卡下,你会发现三个东西:

标记为“条件编译符号”的文本框 标记为“定义调试常量”的复选框 标记为“定义TRACE常量”的复选框

没有这样的复选框,也没有预先定义的名为RELEASE的常量/符号。

但是,您可以轻松地将该名称添加到标记为“条件编译符号”的文本框中,但请确保在这样做之前将项目配置设置为发布模式,因为这些设置是每个配置的。

所以基本上,除非您将其添加到文本框中,否则#if RELEASE在任何配置下都不会生成任何代码。