it-swarm.dev

在C#中退出Console应用程序的命令是什么?

退出控制台应用程序的C#命令是什么?

206
XxYo0nixX

你可以使用Environment.Exit(0);Application.Exit

Environment.Exit(0)更清洁

262
Nikhil Agrawal

几种选择,按最合适的顺序排列:

  1. 从Program.Main方法返回一个int
  2. 抛出异常并且不在任何地方处理它(用于意外的错误情况)
  3. 要强制终止其他地方,System.Environment.Exit 不可移植!见下文

2013年9月编辑以提高可读性

使用特定的退出代码返回: 正如Servy在注释中指出的那样,您可以使用int返回类型声明Main并以此方式返回错误代码。因此,确实没有必要使用Environment.Exit 除非 您需要使用退出代码终止,并且不能在Main方法中执行此操作。很可能你可以通过抛出异常来避免这种情况,并在Main中返回错误代码,如果有任何未处理的异常传播那么。如果应用程序是多线程的,您可能需要更多的样板才能正确终止退出代码,这样您最好只调用Environment.Exit。

反对使用Evironment.Exit的另一点 - 即使在编写多线程应用程序时 - 是 可重用性 。如果您希望在使Environment.Exit无关的环境中重用代码(例如可能在Web服务器中使用的库),则代码将不可移植。在我看来,最好的解决方案仍然是使用异常和/或返回值来表示方法达到某种错误/完成状态。这样,您可以在任何.NET环境中以及任何类型的应用程序中始终使用相同的代码。如果您专门编写需要返回退出代码的应用程序或以类似于Environment.Exit的方式终止的应用程序,那么您可以继续将线程包装在最高级别并根据需要处理错误/异常。

92
sinelaw

主函数运行完毕后,控制台应用程序将退出。 “回归”将实现这一目标。

    static void Main(string[] args)
    {
        while (true)
        {
            Console.WriteLine("I'm running!");
            return; //This will exit the console application's running thread
        }
    }

如果您要返回错误代码,可以这样做,可以从初始线程之外的函数访问:

    System.Environment.Exit(-1);
23
Developer

您可以使用Environment.Exit(0)Application.Exit

Environment.Exit():终止此过程并为底层操作系统提供指定的退出代码。