使用Environment.ExitCode与从Main返回int

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

从main方法返回一个int值

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

(要么)

使用带退出代码的Environment.Exit

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

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

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

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

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

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

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

你也可以这样看:

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

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