14

シェル スクリプトの 1 つで C# 実行可能ファイルのリターン コードを使用する予定です。2 つのオプションがあります。

main メソッドから int 値を返す

class MainReturnValTest
{
    static int Main()
    {
        //...
        return 0;
    }
}

(また)

終了コードで Environment.Exit を使用する

class MainReturnValTest
{
    static void Main()
    {
        //...
        Enviroment.Exit(exitCode);
    }
}

実行可能ファイルから値を返すために上記の方法のいずれかを使用しても問題ありませんか? それとも、そのうちの1つが他のものよりも優先されますか?

4

3 に答える 3

17

Environment.Exit()は失礼な中止です。プロセスを即座に終了します。重大な障害を検出した場合にのみ使用してください。たとえば、AppDomain.UnhandledExceptionイベントハンドラーで使用するのが適切です。これは、未処理の例外が原因でプログラムが終了しようとしているときに実行されます。

これがあなたのリードです。例外は、ゼロではないExitCodeでプログラムを終了する必要がある異常な状態を通知するための良い方法です。実際、例外のHResultプロパティ値に自動的に設定されます。コードは必要ありません。

于 2011-03-09T23:19:49.317 に答える
7

線形プログラムを作成している場合は、から戻ってMainも問題ありません。より複雑なロジックがある場合、または実行の他のスレッドがある場合は、 を使用することをお勧めしますExit(returnCode)。どちらの方法も、シェル スクリプトと同等です。

于 2011-03-09T22:41:06.767 に答える
1

違いは、別のアプリケーションの終了ステータスに基づいて親アプリケーションでイベントを処理する必要がある場合です。return は主にアプリケーション内で使用されますが、exit はアプリケーションを突然終了するために使用されます。ここで、別のアプリケーションが終了ステータスを使用して、次のステップを決定できます。

return は、コードが呼び出された場所から別の関数に値を返すときに使用されます。または、何らかのイベントでのコード実行の終了を示します。

次のようにも表示できます。

1) return は main() などの関数を終了します。exit は、プログラムを終了するために使用されます。

2) 特定の戻り値でプログラムを終了すると、別のアプリケーションが暗黙的に解釈することはできませんが、終了ステータスを使用してコードの実装を決定できます。

于 2013-02-06T08:00:49.920 に答える