首页 > 解决方案 > “并非所有代码路径都返回值”错误发生在方法中,但我确实使用了一些 if 语句来涵盖所有场景

问题描述

这可能是一个愚蠢的问题,但我只想有人可以给出更好的解释。

我有一个定义如下的方法:

    private int Test(int i)
    {
        if (i < 0) return -1;
        if (i == 0) return 0;
        if (i > 0) return 1;

        //return 0;        
    }

它给了我这个错误“并非所有代码路径都返回一个值”。

我以为我有 3 if statement,它可以涵盖所有场景(i<0,i==0,i>0)。所以它不应该告诉我这个错误。

标签: c#if-statementcompiler-errorsreturn

解决方案


编译器没有那么聪明。此外,您的代码效率稍低,因为它测试确定性(i在最后一种情况下必须大于零)。

写成:

private int Test(int i)
{
    if (i < 0) return -1;
    else if (i == 0) return 0;
    else return 1;
}

推荐阅读