c# - 为什么编译器认为Environment.Exit可以返回?

示例代码:

switch(something)
{
    case 0:
        System.Environment.Exit(0);
    case 1:
        // blah ...
        break;
}

它不会编译,因为编译器认为执行可以从Exit()返回。编译器显然是错误的。

没有技巧System.Environment.Exit()是真实的。

返回System.Environment.Exit()完全不合逻辑,我跟踪了代码,最终它调用了无法返回的ExitProcess(exitCode);

最佳答案

就语言而言,它可以返回。是的,在现实生活中,该过程将在有机会返回之前终止,但是编译器基于方法签名并不知道这一点。

您需要在其中添加“break”以使编译器满意。

https://stackoverflow.com/questions/45992172/

相关文章:

ruby-on-rails-3 - 在命名空间模型上使用 factory_girl_rails 和

c# - 无法将类型int隐式转换为int数组

c++ - 编译器在声明类时显示未定义的结构错误

swift - 类型 'Category'(aka 'OpaquePointer')的值没有成员 '

c++ - 为什么 “std::isdigit”在Windows上的C++中报告 “no match

c - 使用指针的程序运行不正常

c++ - 编译器错误: not declared in the scope

java - 我的method.add(int)不会将用户输入添加到我的数组中

java - “Cannot find symbol class keyboard reader”

python - mysql-python的pip安装错误无法正常工作