繁体   English   中英

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

[英]Issue related to a console application in C#/NET

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

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

当我运行此应用程序时,命令提示符出现并突然消失,但是当我运行该应用程序时我在朋友家见过,命令提示符要求Press any key to Continue 当我按任意键之后,应用程序终止..,但是在我的PC中,如果不编写Consol.ReadLine()它将无法正常工作。

是否有将用户引导到“ Press Any Key to Continue行的设置?

遗憾的是,但是,如果您使用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 ,您可以使用try...finally块保护整个Main(),并最终放置在Console.* ,但这并不有趣:-))

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM