Iva*_*ang 1 c# if-statement compiler-errors return
这可能是一个愚蠢的问题,但我只是想有人可以给出更好的解释。
我有一个方法定义如下:
private int Test(int i)
{
if (i < 0) return -1;
if (i == 0) return 0;
if (i > 0) return 1;
//return 0;
}
Run Code Online (Sandbox Code Playgroud)
它给了我这个错误“并非所有代码路径都返回一个值”。
我以为我有 3 if statement
,它可以涵盖所有场景(i<0,i==0,i>0)。所以它不应该向我显示这个错误。
编译器没有那么聪明。此外,您的代码效率稍低,因为它测试确定性(i
在最后一种情况下必须大于零)。
写成:
private int Test(int i)
{
if (i < 0) return -1;
else if (i == 0) return 0;
else return 1;
}
Run Code Online (Sandbox Code Playgroud)