302

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

4

4 回答 4

415

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

Environment.Exit(0) 更干净

于 2012-04-23T18:23:10.210 回答
99

几个选项,按最合适的顺序排列:

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

编辑于 9/2013 以提高可读性

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

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

于 2012-04-23T18:23:45.967 回答
28

当 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);
于 2012-04-23T18:25:10.347 回答
10

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

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

于 2012-04-23T19:31:24.400 回答