3

我是 C# 和 Visual Studio 的新手,这可能是一个愚蠢的问题,但我必须找到答案。我的问题是,如果我在调试模式下构建某些代码行(在我的情况下为 MessageBox.Show(...)),是否可以区分调试和发布构建,但如果我构建则被忽略在发布模式下?

4

5 回答 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静态方法进行检查,如果值错误,则显示消息框。例如:DebugSystem.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 回答