使用Environment.ExitCode与从Main返回int

rkg*_*rkg 12 c# exit-code

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

从main方法返回一个int值

class MainReturnValTest
{
    static int Main()
    {
        //...
        return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

(要么)

使用带退出代码的Environment.Exit

class MainReturnValTest
{
    static void Main()
    {
        //...
        Enviroment.Exit(exitCode);
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Han*_*ant 16

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

这是你的主角:异常是一种很好的方法,可以发出异常情况,这些异常情况会导致程序使用非零的ExitCode终止程序.实际上,它会自动设置为异常的HResult属性值.无需代码.


小智 7

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