我在C#类中有这个代码.
#if DEBUG
private const string BASE_URL = "http://www.a.com/";
#else
private const string BASE_URL = "http://www.b.com//";
#endif
Run Code Online (Sandbox Code Playgroud)
我想问的是什么时候
#if DEBUG
Run Code Online (Sandbox Code Playgroud)
代码中的路径被执行了吗?
它会被执行吗?
Dan*_*npe 48
#if DEBUG 这是一个预处理器定义.
它在您定义DEBUG常量时编译.是的,它是Debug Build Configuration的默认设置.
Visual Studio 2010项目属性:

如果Define DEBUG constant选中,VS将编译:
private const string BASE_URL = "http://www.a.com/";
Run Code Online (Sandbox Code Playgroud)
否则(未选中)VS将编译:
private const string BASE_URL = "http://www.b.com//";
Run Code Online (Sandbox Code Playgroud)
Bri*_*sen 13
这是一个预处理器指令.执行调试构建时会编译DEBUG部分中的代码(更具体地说,在定义DEBUG常量时).即如果你进行调试构建,BASE_URL将指向www.a.com.否则它将指向www.b.com.
使用DEBUG指令编译时.因此,如果设置它,则只有第一行将是已编译二进制文件的一部分,如果未设置,则第二行将成为二进制文件的一部分.
在VS中编译调试配置时默认设置DEBUG,但您可以手动为任何配置设置DEBUG