相关疑难解决方法(0)

C#if/then指令用于debug和release

在解决方案属性中,我将Configuration设置为"release",用​​于我唯一的项目.

在主程序的开头,我有这个代码,它显示"Mode = Debug".我也在最顶端有这两行:

#define DEBUG 
#define RELEASE
Run Code Online (Sandbox Code Playgroud)

我在测试正确的变量吗?

#if (DEBUG)
            Console.WriteLine("Mode=Debug"); 
#elif (RELEASE)
            Console.WriteLine("Mode=Release"); 
#endif
Run Code Online (Sandbox Code Playgroud)

我的目标是根据调试版本和发布模式为变量设置不同的默认值.

c# debugging release compiler-directives

401
推荐指数
12
解决办法
32万
查看次数

如何设置条件编译变量?

在C/C++中,您可以在代码中定义宏,如下所示:

#define OLD_WAY  1
Run Code Online (Sandbox Code Playgroud)

虽然我从来没有这样做过,但我认为C#中可以使用同样的东西.更重要的是,在C/C++中,可以通过执行以下操作来执行某些条件编译逻辑:

#if OLD_WAY == 1
 int i = 0;
#else
 int i = 1;
#endif
Run Code Online (Sandbox Code Playgroud)

好的,所以这一切都很酷.而且,我认为这种逻辑在C#中是可能的.我想知道的是,我如何在项目级别定义常量,以便我可以输入逻辑,如果我定义常量的一个方法或另一个代码块,我将允许我条件编译一个代码块如果我不这样定义?我假设它已经在项目的属性中的某个地方完成,但我如何定义它?

c#

41
推荐指数
3
解决办法
6万
查看次数

宏中的"#ifdef"

可能重复:
#ifff在#define中

如何在宏内成功使用"#"字符?当我做那样的事情时,它会尖叫:

#define DO(WHAT)        \
#ifdef DEBUG        \                           
  MyObj->WHAT()         \       
#endif              \
Run Code Online (Sandbox Code Playgroud)

c++ c-preprocessor

38
推荐指数
3
解决办法
3万
查看次数

代码取决于构建类型?

我正在使用Visual c#Express 2008.我想在"Release"版本中执行一个特殊的命令 - 在我创建和运行Debug版本时不应该执行此命令.是否可以根据我的构建类型(Debug或.Release)实现代码?

例如:

if(??buildtype?? == "Release")
{
 //... special command ...
 MessageBox.Show("RELEASE version");
}
else
{
//... normal command ...
MessageBox.Show("debug release");
}
Run Code Online (Sandbox Code Playgroud)

c# build

3
推荐指数
1
解决办法
1260
查看次数