在“解决方案属性”中,我为我的唯一项目将“配置”设置为“发布”。
在主例程的开头,我有这段代码,它显示“模式=调试”。
我在最上面还有这两行:
#define DEBUG
#define RELEASE
我是否测试了正确的变量?
#if (DEBUG)
Console.WriteLine("Mode=Debug");
#elif (RELEASE)
Console.WriteLine("Mode=Release");
#endif
我的目标是根据调试模式与发布模式为变量设置不同的默认值。
DEBUG
/_DEBUG
应该已经在 VS 中定义。
删除代码中的 。在该特定生成的生成配置中设置预处理器。#define DEBUG
它打印“模式=调试”的原因是因为您的,然后跳过.#define
elif
正确的检查方法是:
#if DEBUG
Console.WriteLine("Mode=Debug");
#else
Console.WriteLine("Mode=Release");
#endif
不要检查 。RELEASE
默认情况下,如果项目在调试模式下编译,Visual Studio 将定义 DEBUG,如果项目处于发布模式,则不会定义它。默认情况下,不会在发布模式下定义发布。使用类似这样的东西:
#if DEBUG
// debug stuff goes here
#else
// release stuff goes here
#endif
如果只想在发布模式下执行某些操作:
#if !DEBUG
// release...
#endif
此外,值得指出的是,您可以在返回的方法上使用属性,以便仅在定义了某个符号时才执行它们。如果未定义符号,编译器将删除对这些方法的所有调用:[Conditional("DEBUG")]
void
[Conditional("DEBUG")]
void PrintLog() {
Console.WriteLine("Debug info");
}
void Test() {
PrintLog();
}
我更喜欢像这样检查它而不是寻找指令:#define
if (System.Diagnostics.Debugger.IsAttached)
{
//...
}
else
{
//...
}
需要注意的是,当然,您可以在调试模式下编译和部署某些内容,但仍然没有附加调试器。
模板简介:该模板名称为【C# if/then 指令用于调试与发布】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。