Console.Writeline 停止我的程序... C#

Nic*_*ck3 6 c# console

我的 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”。

代码中有几个地方,所有地方都会发生同样的情况。它只是停止了,它没有到达目标......

最糟糕的是,它更早地起作用了。我从事应用程序工作很长时间了,从未见过这样的事情。

Mat*_*att 6

如果您仅需要它来调试,请尝试

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)