2

我在 C# 控制台应用程序中有以下代码:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hello...");
    }
}

当我运行这个应用程序时,命令提示符出现然后突然消失,但是我在朋友家看到我运行应用程序时,命令提示符要求Press any key to Continue. 当我按下任意键后,应用程序终止..,但在我的电脑中,如果没有写入它就无法工作Consol.ReadLine()

是否有让用户Press Any Key to Continue排队的设置?

4

2 回答 2

5

遗憾的是没有,但如果你Debug->Start without Debugging Ctrl+F5它会产生这种效果。

显然你可以添加

Console.Write("\nPress Any Key to Continue");
Console.Readkey();

在你的程序结束时。

如果您想(几乎)确定您的代码将始终显示该提示:

AppDomain.CurrentDomain.ProcessExit += (sender, e) =>
{
    Console.Write("\nPress Any Key to Continue");
    Console.ReadKey();
};

将这些行放在Main()方法的开头。

但我认为这有点过分了 :-) 它安装了一个退出处理程序,它将在退出时要求一个键。

现在,如果你真的想表现得过火,你可以达到 11 个:

if (Debugger.IsAttached)
{
    AppDomain.CurrentDomain.ProcessExit += (sender, e) =>
    {
        Console.Write("\nPress Any Key to Continue");
        Console.ReadKey();
    };
}

仅当附加了调试器时才会询问密钥(即使这些行也必须放在Main()方法的开头。它们替换其他版本)。由于Start Without Debugging附加调试器,因此 Visual Studio 将显示其提示而不是您的提示。

(而不是使用AppDomain.CurrentDomain.ProcessExit,您可以用一个块保护整个 Main() try...finally,并在最后放置Console.*,但这并不好笑:-))

于 2013-08-18T15:13:57.160 回答
0

消失正确的行为。如果您希望它以这种方式出现,只需添加 Console.ReadKey();当然您可以在 ("Press any key...") 等之前添加一些消息。

于 2013-08-18T15:17:02.040 回答