繁体   English   中英

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

[英]Need help with Error: not all code paths return a value

我的方法是这样的:

protected string myMethod()
    {

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

    }

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

问你自己; 如果“其他”错误,会发生什么? 那么返回什么呢?

问题是如果something是假的,而somthing else也是假的。

这应该更好:

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

        }
    return img;
}

如果somethingsomething else都不正确,则将无法执行任何操作,也不会返回任何字符串。 如果你的something只是something else的否定,那你就else条件了。

与其他答案相同,但紧凑得多-

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

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

} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM