我刚写了一个名为helloworld的聪明程序。这是一个C#/ .NET 4.5控制台应用程序。在扭曲的嵌套迷宫逻辑中,使用了Console.WriteLine()。
当我在命令行运行它时,它会运行,我会看到输出。我可以做其他命令并且稍微混乱,然后再向上滚动以再次查看输出。
现在我在Visual Studio中,调整源代码(“Hi”比“Hello”更高效)并通过点击F5进行测试。会发生什么是控制台窗口弹出并立即消失。我不知道该节目打印了什么。我怎样才能看到输出?
我根本不想修改我的来源。在搜索解决方案之后,我发现有人说要使用Console.ReadKey() - 但是在命令行使用该程序会很糟糕。用户在程序完成工作时必须点击一个键是没有理由的。即使我这样做,也会出现在按键敲击后控制台窗口关闭时输出消失的问题。
我不想使用Debug.WriteLine()来写入VS中的输出窗口,但是不会为最终用户编写普通输出来查看。
我发现了ctrl-F5,它运行程序就好像它有一个最终的Console.ReadKey()行,但是仍然存在当我点击任何键时,所有输出随窗口一起消失的问题。三分钟后,我在想“哦等等,是否打印'你好'或'Helo'?”无法检查。
似乎Visual Studio IDE应该以某种方式捕获新构建的程序写入其stdout或Microsoft等效项的所有内容,并在其“输出”面板或某个面板中显示它以供稍后审查。也许它确实这样做了,我还不知道它的诀窍?这似乎是数百万C#开发人员的共同愿望。
答案 0 :(得分:1)
如果您使用Visual Studio 2019在.NET Core控制台应用程序(或.NET Framework via the .NET SDK)上进行操作,则默认情况下将在程序执行后使控制台窗口保持打开状态:
特别是:
这应该避免需要将Console.Read()调用添加到控制台应用程序,以防止在程序完成执行后立即关闭控制台窗口。启动的控制台窗口也可以重新用于以后的运行,因此,如果您习惯于使用ctrl + f5,则在启动应用程序几次后,不会有很多控制台窗口关闭。
答案 1 :(得分:0)
它自动关闭的原因是因为它已经完成了程序的运行。如果你想看看它做了什么,让它需要一个新的命令,如点击任何键。 Console.ReadKey();暂停它并等待用户按键继续。将该命令放在您正在执行的指令之后,它将暂停直到您按任意键为止。
Console.ReadKey(); //暂停,直到你按任意键
答案 2 :(得分:0)
您也可以按F10(逐行执行一行)运行程序,使用F11(进入函数内)。
您拥有的另一个选项是在Visual Studion中设置断点并按F5运行程序 - 它将在下一个断点处停止。断点可以有条件 - 即条件断点。
答案 3 :(得分:0)
有些选择是: 1.围绕Console.ReadKey()包装#if DEBUG 2.直接从开放式终端运行 3.创建一个测试项目 - 但是你再次需要Console.ReadKey()来阻止它关闭。