9

所以我想知道,当运行常规的 winforms 应用程序时,该Console.WriteLine()方法写入到哪里?

我知道在调试期间它会愉快地在调试输出中吐出所有文本,但是当我不再像最终用户那样调试和使用程序时,一切都去哪里了?它会进入某种缓存吗?RAM的深度?去拉脱维亚度假?

如果它写入在运行时可访问的东西,我们能否以某种方式将其显示给用户或将所有内容写入文本文件或其他东西?

4

3 回答 3

7

您是在谈论 Console.WriteLine 还是 Debug.WriteLine?

Console.WriteLine 在调试和发布配置下的工作方式相同。如果您像控制台应用程序一样配置项目并以发布模式启动它,您将首先在后台获得一个控制台,您将在其中看到所有输出。这是一个配置为作为控制台项目运行并写入的 Winform 项目

如果未定义 DEBUG,则 Debug.WriteLine 有一个条件语句。它不写任何东西。

于 2013-06-20T16:16:48.873 回答
1

Console.WriteLine()将以调试或发布模式写入标准输出。所以你有办法在发布模式下捕捉它。

Debug.WriteLine 有一个替代方案,如果我记得的话,它不是在发行版中编译的。

于 2013-06-20T07:28:39.920 回答
1

我认为您的问题实际上是关于想要捕获Console.WriteLine()。首先,Console.WriteLine()写入标准输出流,可以通过附加控制台窗口或通过其他截取流的方式读取。

如果要捕获要使用的调试或日志记录信息

System.Diagnostics.Trace.WriteLine

然后,要将您的输出发送到一个文件,您可以设置一个TraceListener,它可以是一个文件或其他东西。

于 2013-06-20T15:42:06.887 回答