一尘不染

为什么显示我的输出后立即关闭控制台窗口?

c#

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

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

using System;

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

阅读 269

收藏
2020-05-19

共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
2020-05-19