为什么在下面的代码中,.NET 编译器无法确定所有代码路径都返回一个值?
bool Test(bool param) {
bool test = true;
if (param)
test = false;
else
test = false;
if (!test)
return false;
}
错误 CS0161:并非所有代码路径都返回值!
代码可以重构——但编译器不建议这样做。然而所有的返回路径都被覆盖了——那么为什么编译器会抱怨它们没有呢?
编辑:我想这里的结论是:
(error CS0161) + (all code paths obviously return a value) => refactor code.
一旦你养成了翻译的习惯,我想一切都好。