提问者:小点点

为什么一旦显示我的输出,控制台窗口就会立即关闭?


我正在按照MSDN中的指南学习C#。

现在,我刚刚尝试了示例1(这里是到MSDN的链接),我遇到了一个问题:为什么一旦显示了我的输出,控制台窗口就会立即关闭?

using System;

public class Hello1
{
    public static int Main()
    {
        Console.WriteLine("Hello, World!");
        return 0;
    }
}

共1个答案

匿名用户

这里的问题是,他们的Hello World程序出现了,那么它就会立即关闭。
这是为什么呢?

因为它已经完成了。当控制台应用程序完成执行并从其main方法返回时,关联的控制台窗口将自动关闭。这是预期的行为。

如果你想让它打开以进行调试,你需要指示计算机在结束应用程序和关闭窗口之前等待一个按键。

console.readline方法是实现此目的的一种方法。将这一行添加到代码的末尾(就在return语句之前)将导致应用程序在退出之前等待您按下某个键。

或者,您可以通过在Visual Studio环境中按Ctrl+F5来启动应用程序,而不附加调试器,但这有一个明显的缺点,即阻止您使用调试功能,而在编写应用程序时,您可能需要使用这些功能。

最好的折衷办法可能是仅在调试应用程序时调用console.readline方法,方法是将其包装在预处理器指令中。类似于:

#if DEBUG
    Console.WriteLine("Press enter to close...");
    Console.ReadLine();
#endif

如果抛出未捕获的异常,您可能还希望窗口保持打开状态。为此,可以将console.readline();放在finally块中:

#if DEBUG
    try
    {
        //...
    }
    finally
    {
        Console.WriteLine("Press enter to close...");
        Console.ReadLine();
    }
#endif