我的 Windows Froms C# 应用程序刚刚遇到了最奇怪的问题
我的代码中有一些Console.WriteLine用于调试,但突然它停止工作了。例如
try{
line(of.code);
Console.WriteLine("HERE");
other.line(of.code);
}
catch (Exception e)
{
logger.logg(e.ToString());
}
Run Code Online (Sandbox Code Playgroud)
我不会到达线路other.line(of.code);,并且我在控制台中没有收到“HERE”。
代码中有几个地方,所有地方都会发生同样的情况。它只是停止了,它没有到达目标......
最糟糕的是,它更早地起作用了。我从事应用程序工作很长时间了,从未见过这样的事情。
如果您仅需要它来调试,请尝试
System.Diagnostics.Debug.WriteLine("HERE");
Run Code Online (Sandbox Code Playgroud)
反而。
这会将输出写入开发环境的输出窗口中,更重要的是,无论您正在开发什么类型的应用程序(控制台应用程序、win 表单、Web 应用程序等),它都会工作。
一旦更改为“release”,调试信息将被忽略并且不会编译到代码中。如果您也需要它,您应该尝试 Trace.Writeline。
注意:如果您声明如下,您的生活会更轻松Systems.Diagnostics:
using System.Diagnostics; // at the top of your code
void Main()
{
// Then you can say:
Debug.WriteLine("Some message 1");
Debug.WriteLine("Some message 2");
}
Run Code Online (Sandbox Code Playgroud)
您甚至可以像这样进行条件调试打印:
for (int i = 0; i < 100; i++)
{
Debug.WriteLineIf(i>90, $"i is greater than 90: {i}");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1946 次 |
| 最近记录: |