从应用程序外部来看,两者之间有什么区别
...
Environment.Exit(2)
和
static int Main()
{
...
return 2;
}
?
最明显的区别是您可以从代码中的任何位置调用 Environment.Exit。除此之外:
Environment.Exit
无论如何都会取消这个过程。Environment.Exit
终止进程而不展开堆栈并执行 finally 块(至少根据我的实验)。显然,当您从Main
托管代码方面返回时,您已经处于最高级别。Environment.Exit
需要适当的安全权限,因此不适用于不太受信任的应用程序。看到问题更新后,我不完全确定您的意思。在这两种情况下,该过程都会以代码 2 退出...
Environment.Exit(2)
可以在任何地方使用。return 2
只在Main()
函数内。
如果您正在进行单元测试并调用 Main
Program.Main(args);
那么 Environment.exit 将始终反映失败。使用 return 将按预期工作。