需要帮助Error:并非所有代码路径都返回一个值

时间:2010-10-13 07:51:11

标签: c#

我的方法是这样的: -

protected string myMethod()
    {

        if (something)
        {
            string img = "A";
            return img;
        }
        else
          if(something else)
           {
              string img = "B";
              return img;
            }

    }

当我运行代码时“显示并非所有代码路径都返回一个值”..为什么呢?该方法返回“string img”然后为什么会出现此错误?

5 个答案:

答案 0 :(得分:6)

问问自己;如果'别的'是假的,会发生什么?什么回来了?

答案 1 :(得分:4)

问题是如果something为假且somthing else为假。

这应该更好:

protected string myMethod()
{
    string img = string.Empty;
    if (something)
    {
        img = "A"
    }
    else 
       if(something else)
       {
          img = "B";

        }
    return img;
}

答案 2 :(得分:2)

如果somethingsomething else都不为真,则无法执行任何操作,也无法返回任何字符串。 如果something只是something else的否定,那么else之后就不应该有任何条件。

答案 3 :(得分:2)

与其他答案相同,但更为紧凑 -

protected string myMethod()
{
    return (something)? "A" : ((something else)? "B" : string.Empty);
}

答案 4 :(得分:1)

protected string myMethod() 
{ 

    if (something) 
    { 
        string img = "A"; 
        return img; 
    } 
    else 
      if(something else) 
       { 
          string img = "B"; 
          return img; 
        }
reture some_String_To_Return 

}