C# 需要错误帮助:并非所有代码路径都返回值

C# 需要错误帮助:并非所有代码路径都返回值,c#,C#,我的方法是这样的:- protected string myMethod() { if (something) { string img = "A"; return img; } else if(something else) { string img = "B"; return

我的方法是这样的:-

protected string myMethod()
    {

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

    }

当我运行代码时,会显示“并非所有代码路径都返回值”。为什么?该方法返回“字符串img”,那么为什么会出现此错误?

问问自己;如果“其他东西”是假的,会发生什么?然后返回什么?

如果
某物
其他某物
都不正确,则无法执行任何操作,也没有要返回的字符串。
如果你的
something
只是
something
的否定,你不应该在
else

之后有任何条件,问题是
something
是假的,而
something
也是假的

protected string myMethod() 
{ 

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

} 
这应该更好:

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

        }
    return img;
}

与其他答案相同,但更紧凑的一个-

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

“相互排斥”并不意味着完全覆盖。这看起来像是一个等待发生的错误。。。您似乎在为前两个返回字符串,为最后一个返回布尔值(假设前面的某个对象用作布尔值),或者最后一个对象更像是“另一个对象”吗?您的报税表中有一个输入错误,如果您确实进行了编辑,您不妨更正一下。:)