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(移植性がありません! 以下を参照してください)

読みやすくするために 2013 年 9 月に編集

特定の終了コードで戻る: Servy がコメントで指摘しているように、int戻り値の型で Main を宣言し、その方法でエラー コードを返すことができます。したがって、終了コードで終了する必要があり、Main メソッドで終了できない可能性がある場合を除き、Environment.Exit を使用する必要はありません。ほとんどの場合、例外をスローし、未処理の例外が Main に伝播した場合は Main にエラー コードを返すことで、これを回避できます。アプリケーションがマルチスレッドの場合、終了コードで適切に終了するには、さらに多くのボイラープレートが必要になる可能性があるため、Environment.Exit を呼び出すだけの方がよい場合があります。

Evironment.Exitマルチスレッド アプリケーションを作成する場合でも、再利用を避けるもう 1 つのポイントは、再利用性です。無関係な環境 (Web サーバーで使用される可能性のあるライブラリなど) でコードを再利用したい場合Environment.Exit、コードは移植できません。私の意見では、最善の解決策は、メソッドが何らかのエラー/終了状態に達したことを表す例外や戻り値を常に使用することです。そうすれば、どの .NET 環境でも、どのタイプのアプリケーションでも、常に同じコードを使用できます。終了コードを返す必要があるアプリ、または終了コードと同様の方法で終了する必要があるアプリを具体的に作成している場合はEnvironment.Exit、スレッドを最上位レベルでラップし、必要に応じてエラー/例外を処理できます。

于 2012-04-23T18:23:45.967 に答える
28

メイン関数の実行が完了すると、コンソール アプリケーションは終了します。「リターン」はこれを達成します。

    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 に答える