我是 C# 和 Visual Studio 的新手,这可能是一个愚蠢的问题,但我必须找到答案。我的问题是,如果我在调试模式下构建某些代码行(在我的情况下为 MessageBox.Show(...)),是否可以区分调试和发布构建,但如果我构建则被忽略在发布模式下?
问问题
128 次
5 回答
4
将代码行包装在#if DEBUG
语句中:
#if DEBUG
MessageBox.Show("Message");
#endif
如果您想在发布时做不同的事情,那么您可以:
#if DEBUG
MessageBox.Show("Message");
#else
// Write to log file
#endif
于 2012-07-31T12:18:26.317 回答
1
您可以使用编译器指令“#if DEBUG”,后跟“#endif”,这样您的代码将仅在调试模式下编译。
在此处找到更多详细信息:http:
//msdn.microsoft.com/en-us/library/4y6tbswk.aspx
于 2012-07-31T12:18:19.283 回答
1
您可以在项目的属性中指定不同的条件编译符号(此处有一篇文章; Visual Studio 的MSDN 文档)。然后,使用条件编译很容易包含/排除某些行。像这样:
#if DEBUG
MessageBox.Show(...);
#end
于 2012-07-31T12:19:22.433 回答
1
除此之外#if DEBUG
,您还可以使用in 类的Assert
静态方法进行检查,如果值错误,则显示消息框。例如:Debug
System.Diagnostics
Debug.Assert(IsValid);
如果 IsValid 为 false,将在调试版本中显示一条消息。
于 2012-07-31T12:21:36.627 回答
0
是的,您可以使用
#if DEBUG
MessageBox.Show....
#endif
如果您检查构建版本,您会发现您在项目中定义了变量:DEBUG
仅在调试版本中定义。如果你愿意,你也可以使用切换行为
#if DEBUG
MessageBox.Show....
#else
// do something else here in release mode
#endif
于 2012-07-31T12:18:09.230 回答