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