所以我想知道,在运行常规winforms应用程序时,Console.WriteLine()
方法写在哪里?
我知道在调试期间它会愉快地吐出调试输出中的所有文本,但是当我不再调试并使用像最终用户那样的程序时,一切都会消失?它会进入某种缓存吗? RAM的深度?去拉脱维亚度假?
如果它写入在运行时可以访问的内容,我们可以以某种方式向用户显示它还是将所有内容写入文本文件或其他内容?
答案 0 :(得分:6)
您是在谈论Console.WriteLine还是Debug.WriteLine?
Console.WriteLine在调试和发布配置下以相同的方式工作。如果您将项目配置为控制台应用程序并在发布模式下启动它,您将首先在后台获得一个控制台,您将看到所有输出。
如果未定义DEBUG,则Debug.WriteLine具有条件语句。它没有写任何东西。
答案 1 :(得分:1)
Console.WriteLine()
将在调试或发布模式下写入标准输出。所以你有办法在发布模式下捕获它。
Debug.WriteLine还有一个替代方法,如果我记得的话,它不是在发布版本中编译的。
答案 2 :(得分:1)
我认为你的问题实际上是想要捕获Console.WriteLine()
。首先,Console.WriteLine()
写入标准输出流,可以通过附加控制台窗口或通过其他拦截流的方式来读取。
如果要捕获要使用的调试或记录信息
System.Diagnostics.Trace.WriteLine
然后,要将输出发送到文件,您可以设置TraceListener,这可能是文件或其他内容。