我在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);
行,而且我没有在控制台中找到“HERE”。
代码中有一些地方,所有这些地方都会发生同样的情况。它只是停止,它没有到达捕获......
最糟糕的是,它早先工作了。我已经在应用程序上工作了很长时间,从未见过类似的东西。
答案 0 :(得分:4)
如果您只需要调试,请尝试
System.Diagnostics.Debug.Writeline("HERE");
代替。
这会将输出写入开发环境的输出窗口,更重要的是,无论您正在开发的应用程序类型如何(控制台应用程序,获胜表单,Web应用程序等),它都将起作用。
一旦更改为“release”,调试信息将被忽略,不会编译到代码中。如果你也需要它,你应该尝试使用Trace.Writeline。
答案 1 :(得分:3)
我可以想到一些会导致Console.WriteLine失败的场景:
输出流已设置为无效对象或行为异常(在您的情况下停止程序)。
您所在的环境中未授予您使用控制台*的权限。
它不是System.Console.WriteLine,而是由于一些using指令而被调用的另一个同名方法。
*:我想不出这样的环境,但可能是一些插件系统?
如果您正在制作Windows Froms应用程序而不是为控制台设置输出流,那么Console.WriteLine应该什么都不做。因此,如果您需要调试,请关注Matt's recomendation。