我刚写了一个名为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#开发人员的共同愿望。
如果您正在使用Visual Studio 2019处理.NET Core控制台应用程序(或.NET Framework via the .NET SDK),则在程序执行后让控制台窗口保持打开状态的行为现在默认情况下会发生:
特别:
这样可以防止需要向控制台应用程序添加Console.Read()调用,以防止控制台窗口在程序执行完毕后立即关闭。启动的控制台窗口也会重新用于后续运行,因此如果您习惯使用ctrl + f5,则在启动应用程序几次后,您将无法关闭许多控制台窗口。
它自动关闭的原因是因为它已经完成了程序的运行。如果你想看看它做了什么,让它需要一个新的命令,如点击任何键。 Console.ReadKey();暂停它并等待用户按键继续。在您正在执行的指令之后放置该命令,它将暂停直到您按任意键为止。
Console.ReadKey(); //暂停,直到你按任意键
您也可以按F10(逐行执行一行)运行程序,使用F11(进入函数内)。
另一个选项是在Visual Studion中设置断点并按F5运行程序 - 它将在下一个断点处停止。断点可以有条件 - 即条件断点。
一些选项是:1。围绕Console.ReadKey()包装#if DEBUG 2.直接从开放终端运行3.创建一个Test项目 - 但是你需要Console.ReadKey()来阻止它关闭。