我正在按照 MSDN 中的指南学习 C# 。
现在,我刚刚尝试了 示例 1 (这里是 MSDN 的链接),我遇到了一个问题:为什么控制台窗口在显示我的输出后立即关闭?
using System; public class Hello1 { public static int Main() { Console.WriteLine("Hello, World!"); return 0; } }
这里的问题是他们的 Hello World 程序正在出现,然后它会立即关闭。 这是为什么?
因为已经完结了。 当控制台应用程序完成执行并从其main方法返回时,相关的控制台窗口会自动关闭。这是预期的行为。
main
如果您想让它保持打开以进行调试,您需要指示计算机在结束应用程序并关闭窗口之前等待按键。
该Console.ReadLine方法是这样做的一种方法。将此行添加到代码的末尾(就在return语句之前)将导致应用程序在退出之前等待您按下一个键。
Console.ReadLine
return
或者,您可以在没有附加调试器的情况下在 Visual Studio 环境中按Ctrl+来启动应用程序F5,但这有一个明显的缺点,即阻止您使用调试功能,而您在编写应用程序时可能希望使用这些功能。
Ctrl
F5
最好的折衷方案可能是仅在调试应用程序时调用该Console.ReadLine方法,方法是将其包装在预处理器指令中。就像是:
#if DEBUG Console.WriteLine("Press enter to close..."); Console.ReadLine(); #endif
如果抛出未捕获的异常,您可能还希望窗口保持打开状态。为此,您可以将其Console.ReadLine();放入一个finally块中:
Console.ReadLine();
finally
#if DEBUG try { //... } finally { Console.WriteLine("Press enter to close..."); Console.ReadLine(); } #endif