我在工作中维护了许多控制台应用程序,我在其中一些人注意到的一件事是他们调用了Environment.Exit(0).
示例程序如下所示:
public class Program { public static void Main(string[] args) { DoStuff(); Environment.Exit(0); } }
我不明白原始程序员的意图是什么?在我看来,即使没有Environment.Exit语句,程序应该退出就好了.也就是说,对于其中一个程序,它的控制台窗口即使在应该关闭之后仍然存在,所以我真的不确定那里发生了什么......
我在这里错过了什么吗?或者是否有理由在此实例中调用Environment.Exit?
调用Exit()
Main方法的最后一行的唯一原因是可能有其他前台线程正在运行.如果执行刚刚结束,它们将继续运行Main
.即使在这种情况下,通常更好的做法是将一些明确的优雅终止放入其他线程 - 或者让它们开始后台线程.
如果您想要返回不同的退出代码Main
,更简单的方法是声明它返回int
.
简而言之,我认为你不需要Environment.Exit()
这里,并且值得你的同事确切地告诉他们为什么要使用它 - 他们很可能无法给你一个充分的理由,而且你可以削减它的另一点点出.
基本上该语句Environment.Exit(0)
告诉操作系统这是一个"干净"的退出.还有其他数字,每个都有不同的含义,如Environment.Exit(1)
但有一点需要注意的是,"Main"已被声明为没有返回"void",因此退出代码对它没有任何意义.
如果您想了解更多有关不同退出代码的信息,请查看此处
系统错误代码