控制台写行不起作用

Posted

技术标签:

【中文标题】控制台写行不起作用【英文标题】:Console writeline does not work 【发布时间】:2018-07-05 19:33:51 【问题描述】:

我正在用 C# 调试 UWP。在某个时刻,控制台停止给我写行内容。

有没有人能想象出问题可能是什么?

【问题讨论】:

输出窗口不是控制台 你的意思是Debug.WriteLine 改用 Debug.WriteLine Console.WriteLine 或 Debug.Writeline 不适合跟踪或记录。使用适当的日志库 Console.WriteLine() 工作正常,但对于某些项目却不行。 WPF + .Net Framework 有效,WPF + .Net Core 3 无效。 【参考方案1】:

Console.WriteLine 不适用于 IDE 输出窗口。它写入控制台。因此,您可以使用Debug.WriteLine(),它在System.Diagnostics 中可用

【讨论】:

仅适用于调试版本 另外请记住,您需要 DEBUG 标志才能使用它。见HERE 天哪,我完全忘记了使用哪一个。为什么没有控制台时Console.WriteLine不报错?【参考方案2】:

Console.WriteLineDebug.Writeline 不适合跟踪或记录。真正的解决方案是使用日志库。

调试器的输出窗口不是控制台。如果你想给它写信,请使用Debug.WriteLine。您可以这样做,因为输出窗口已注册为 .NET 跟踪基础结构的侦听器。

但这在发布模式下不起作用。您需要为此使用Trace.WriteLine您还需要注册自己的侦听器。您还需要指定消息级别以将错误与详细消息分开,例如仅将错误写入日志文件。

尽管如此,添加和配置日志库(如 Serilog 或 NLog)同样容易,它们具有滚动文件、数据库、日志服务器等的提供程序。

【讨论】:

【参考方案3】:

如果你想在“输出”中看到一些消息,你应该使用Debug.WriteLine。为此,您将使用using System.Diagnostics

例如,如果您使用 WindowsForm,则不能只使用Console.WriteLine

【讨论】:

以上是关于控制台写行不起作用的主要内容,如果未能解决你的问题,请参考以下文章

SQLite 删除特定行不起作用

引导表单组行不起作用

UIPickerView 选择行不起作用 ios7

生成xml时新行不起作用

Pandas 用 df.drop 删除行不起作用

没有 laravel 的 Eloquent 选择行不起作用