使用Environment.ExitCode与从Main返回int

时间:2011-03-09 22:38:38

标签: c# exit-code

我打算在我的一个shell脚本中使用C#可执行文件的返回码。我有两个选择:

从主方法返回一个int值

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

(OR)

使用带退出代码的Environment.Exit

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

使用上述任何方法从可执行文件返回值是否可以?或者他们中的一个比其他人更受欢迎?

3 个答案:

答案 0 :(得分:16)

Environment.Exit()是一个粗鲁的中止。它立即终止了这个过程。仅在检测到严重故障时使用它,例如,它适用于AppDomain.UnhandledException事件处理程序。当程序即将因未处理的异常而终止时运行。

你的领导是什么:异常是一种很好的方法,可以用一个非零的ExitCode来终止程序的异常情况。实际上,它会自动设置为异常的HResult属性值。无需代码。

答案 1 :(得分:7)

如果您正在编写线性程序,那么从Main返回就可以了。如果你有更复杂的逻辑,或者可能有其他执行线程,那么你可能想要使用Exit(returnCode)。这两种方式都等同于你的shell脚本。

答案 2 :(得分:1)

区别在于您需要根据另一个应用程序的退出状态在父应用程序上处理事件。 Return主要在应用程序中使用,而exit用于突然结束应用程序。此处退出状态可由另一个应用程序用于决定其后续步骤。

当您将值返回到调用代码的另一个函数时,将使用返回值。或表示某些事件的代码执行结束。

你也可以这样看:

1)返回结束一个函数,可以是main();退出用于结束程序。

2)结束具有特定返回值的程序不能被其他应用程序隐式解释,但退出状态可用于决定代码实现。