【发布时间】:2009-09-24 07:26:38
【问题描述】:
从应用程序之外,有什么区别
...
Environment.Exit(2)
和
static int Main()
{
...
return 2;
}
?
【问题讨论】:
从应用程序之外,有什么区别
...
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 将按预期工作。
【讨论】: