Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Console.Write(字符串)不再在VS 2017 WinForms项目中工作?_C#_Winforms_Visual Studio 2017 - Fatal编程技术网

C# Console.Write(字符串)不再在VS 2017 WinForms项目中工作?

C# Console.Write(字符串)不再在VS 2017 WinForms项目中工作?,c#,winforms,visual-studio-2017,C#,Winforms,Visual Studio 2017,有人知道为什么Console.Write(string)不再适用于Visual Studio 2017 C#Windows窗体应用程序吗 下面是一些要复制的示例代码: Console.WriteLine("Results: "); const int count = 15; for (int i = 0; i < count; i++) { if (i == (count - 1)) Console.Write(i); else

有人知道为什么
Console.Write(string)
不再适用于Visual Studio 2017 C#Windows窗体应用程序吗

下面是一些要复制的示例代码:

Console.WriteLine("Results: ");
const int count = 15;
for (int i = 0; i < count; i++)
{
    if (i == (count - 1))
        Console.Write(i);
    else
        Console.Write(i + ", ");
}
Console.WriteLine(“结果:”);
常数int计数=15;
for(int i=0;i
我已经向微软的VS团队提交了一个bug,但是他们没有什么帮助。出于某种原因,他们似乎不理解这个问题?我不知道该怎么说才清楚


错误报告:

它将无法作为
winforms
项目在此处创建控制台窗口。如果您想在控制台输出中看到它,则需要打开VisualStudio的集成输出窗口

步骤1
单击Visual studio导航菜单中的“视图”

步骤2
然后单击
Output
,或者您可以使用快捷方式
Ctrl+W
O
为您打开窗口

步骤3

现在,替换所有的
Console.writeline(…)Debug.WriteLines(…),它将放置您想要输出的所有行。

我按照您的要求复制了您的问题

根本原因是:您的项目不是控制台应用程序,即控制台应用程序将立即显示控制台。写入输出。但是,在WinForms中,VisualStudio读取控制台输出,但在向其提供换行符之前不会将其打印到输出窗格。通常,windows窗体应用程序不使用控制台。请编写[Line],因为当您在visual studio之外运行时,它不会在任何地方运行

如果坚持使用Console.Write,请添加一个换行符,如下所示: 控制台。写入有输出


您也可以按照Jamshaid Kamran的建议打开视图输出,并将
控制台
更改为
调试
,或者有打开控制台窗口的解决方案,但非常不方便。根据我的经验,我更喜欢使用MessageBox.Show(“结果”)临时查看某些内容。

因此,您没有看到控制台上打印的内容,对吗?没错。您指的当然是Visual Studio的输出面板(?)。或即时窗口,具体取决于您的配置。如果是这样的话,这件事发生在不久前,并且持续了一段时间。在当前版本之前,它已经解决了(或者更好的是,默认行为已经恢复)许多版本。快速测试表明,
System.Diagnostics.Debug
不会出现相同的问题(至少在VS2019中),并且除了(奇怪的是)缺少没有参数的
.WriteLine()
之外,基本上是可互换的(但是
WriteLine(“”
就可以了)。可以说,在表单应用程序中使用
Console
也比使用
WriteLine更清晰,因为可以想象,这可以用于实际的、最终用户可读的输出(即使大多数表单应用程序不分配控制台)。作为奖励,您可以获得
缩进
/
未缩进
,我想?@AaronChapman您不需要添加任何内容,诊断
名称空间总是可用的。顺便说一句,这一点有很好的文档记录,因为
调试
跟踪
是.NET最初十年中常见的登录方式。人们转向了更好/更简单的方式日志库,如log4net,自2010年以来,我一直在犹豫是否否决你的答案,因为我觉得你认为我太没文化了,不知道我需要在调试我的项目之前打开输出窗口,但我正在考虑……默认情况下,输出窗口会在每次你以“调试”模式运行应用程序时打开。不过,谢谢你的帮助输入。@AaronChapman如果你投了反对票,那你就大错特错了。
Console
不用于日志记录,
Debug
Trace
用于日志记录。它们不只是写入“Console”,它们写入.NET的日志记录和跟踪基础结构。默认情况下,
Debug
写入每个调试器捕获的调试输出。这是一个好方法answer@AaronChapman我相信你知道如何打开它,但每当你写一个答案,你会考虑未来的人,看看有人回答什么,他们会。注意答案是否详细,这也会让其他人的生活更轻松。只是不要对向你解释的事情感到生气。有时,输出窗口被人意外关闭,你认为它默认情况下还会打开吗?它不会打开。我的输出窗口默认情况下不会打开。从未修改过我也使用了默认设置。@PanagiotisKanavos我一点也不会错,我从来没有说过
控制台
是“有意”用于日志记录的,我很清楚这不是标准设置。但是,正如我在前面的评论中所说,我只使用它进行快速检查,而且只有在极少数情况下才使用它。我不是在这里与您讨论“最佳实践”。只是想知道为什么它突然停止了工作,就像过去一样。显然,从现在起,我只需要将
控制台
换成
调试
。没有很好的解释为什么
控制台。Write
现在停止了工作,但向我建议了一个替代方案,我将使用它。