4

我刚刚在我的 Windows Froms C# 应用程序中遇到了最奇怪的问题

我的代码中有一些Console.WriteLine用于调试,但突然停止工作。例如

try{
   line(of.code);
   Console.WriteLine("HERE");
   other.line(of.code);
}
catch (Exception e)
{
   logger.logg(e.ToString());
}

我不会other.line(of.code);排队,也没有在控制台中看到“这里”。

代码中有几个地方,所有地方都发生了同样的情况。它只是停止,它没有抓住...

最糟糕的是,它工作得更早。我在应用程序上工作了很长时间,从来没有见过这样的事情。

4

2 回答 2

4

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

System.Diagnostics.Debug.Writeline("HERE");

反而。

这会将输出写入您的开发环境的输出窗口,更重要的是,无论您正在开发的应用程序类型如何(控制台应用程序、win 表单、Web 应用程序等),它都能正常工作。

一旦您更改为“发布”,调试信息将被忽略并且不会编译到代码中。如果你也需要它,你应该尝试 Trace.Writeline。

于 2012-09-11T06:13:57.463 回答
3

我可以想到一些会导致 Console.WriteLine 失败的场景:

  1. 输出流已设置为无效对象或行为不端的对象(在您的情况下停止程序)。

  2. 您在不允许您使用控制台的环境中运行*。

  3. 它不是 System.Console.WriteLine 而是另一个同名的方法,由于一些 using 指令而被调用。

*:我想不出这样的环境,但可能是一些插件系统?

如果您正在制作一个 Windows Froms 应用程序并且没有为您的控制台设置输出流,那么 Console.WriteLine 应该什么都不做。因此,如果您需要调试,请遵循Matt 的建议

于 2012-09-11T06:05:02.323 回答