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

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

455483 次浏览

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

Environment.Exit(0) 更清洁

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

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

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

正如Servy在评论中指出的那样,你可以用int返回类型声明Main,并以这种方式返回错误代码。所以真的没有必要使用Environment。退出除非你需要用退出码终止,并且不可能在Main方法中这样做。大多数情况下,你可以通过抛出异常来避免这种情况,如果有任何未处理的异常传播到Main中,则在Main中返回错误代码。如果应用程序是多线程的,你可能需要更多的样板文件来使用退出码正确地终止,所以你最好直接调用Environment.Exit。

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

当main函数完成运行时,控制台应用程序将退出。“回归”将实现这一点。

    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);

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

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