当前位置:  开发笔记 > 编程语言 > 正文

#if RELEASE会像#if DEBUG一样在C#中工作吗?

如何解决《#ifRELEASE会像#ifDEBUG一样在C#中工作吗?》经验,为你挑选了6个好方法。

在我看过#if编译器指令的所有例子中,他们使用"DEBUG".我可以以相同的方式使用"RELEASE"来排除在调试模式下编译时我不想运行的代码吗?我想用这个块包围的代码会发出一堆电子邮件,我不想在测试时不小心将它们发送出去.



1> M4N..:

RELEASE 没有定义,但你可以使用

#if (!DEBUG)
  ...
#endif


确实如此,但使用你的解决方案更清晰,"更正确",恕我直言.
它不是,但当然你可以像这样使用NOT运算符.当我写下答案时没有想到这一点.

2> angry person..:

不,它不会,除非你做一些工作.

这里的重要部分是DEBUG的真正含义,它是编译器可以检查的一种常量定义.

如果检查项目属性,在Build选项卡下,您会发现三件事:

标有"条件编译符号"的文本框

标有"定义DEBUG常量"的复选框

标有"定义TRACE常量"的复选框

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

但是,您可以轻松地将该名称添加到标记为条件编译符号的文本框中,但请确保在执行此操作之前将项目配置设置为释放模式,因为这些设置是按配置进行的.

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



3> Pop Catalin..:

不.

在调试配置中,有一个DEBUG定义的常量(由Visual Studio自动定义),而没有为发布模式定义的此类常量.检查构建下的项目设置.

Project - > Build下选择[Define DEBUG constant] 就像在每个文件的开头包含#define DEBUG一样.

如果要为发布配置定义RELEASE常量,请转到:

项目属性 - >构建

选择发布模式

条件编译符号文本框中输入:RELEASE



4> JaredPar..:

在我的VS安装(VS 2008)#if RELEASE不起作用.但是你可以使用#if !DEBUG

例:

#if !DEBUG
SendTediousEmail()
#endif



5> Pete H...:

我以前从未见过......但我看到过:

#if (DEBUG == FALSE)

#if (!DEBUG)

你的工作是什么?



6> 小智..:

您可以#if(!DEBUG)用于此目的.

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有