与C#/NET中的控制台应用程序有关的问题

本文关键字:应用程序 问题 控制台 NET | 更新日期: 2023-09-27 18:28:01

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

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

当我运行此应用程序时,命令提示符出现并突然消失,但我在朋友家看到,当我运行该应用程序时命令提示符要求Press any key to Continue。当我按下任何键后,应用程序终止。。,但在我的电脑上,如果不写Consol.ReadLine(),它就无法工作。

是否有将用户连接到Press Any Key to Continue线路的设置?

与C#/NET中的控制台应用程序有关的问题

遗憾的是没有,但如果您调试->启动而不调试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,您可以用try...finally块保护整个Main(),并在最后放入Console.*,但这并不好笑:-)

消失正确的行为。如果您希望它以这种方式显示,只需添加Console.ReadKey();当然,你可以在之前添加一些消息("按任意键…")等。