对于受保护字符串函数中的每个循环

时间:2013-08-16 22:28:42

标签: c#

尝试在我的受保护字符串函数中为每个循环添加一个,但不断收到错误:“并非所有代码路径都返回值”。请帮忙。

protected string GetAmountStyle()
{
  {
    foreach (LFConnection ProdCurrConn in AllConn)
    {
      if (Login.Contains(ProdCurrConn.UserName) == false)
        if ((Request.Browser.Browser.Contains("IE") == true))
        {
          //th1.Attributes.Add("style", "padding-right: 5px;");
          //return "padding-right: 1px;";
          return "background-color: #FFFF66;";
        }
        else
        {
          //th1.Attributes.Add("style", "padding-right: 5px;");
          return "background-color: #FFFF66;";
        }
      else
      {
        //th1.Attributes.Add("style", "padding-right: 5px;");
        return string.Empty;
      }
    }

5 个答案:

答案 0 :(得分:5)

问题是,如果AllConn为空,则您的方法永远不会返回值,因为您在foreach后没有返回。

话虽如此,你的循环现在也只检查AllConn中的第一个值,因为foreach中的每个路径都会返回一些值,所以不可能检查第二个“Conn”元素

我怀疑你真的想要更喜欢的东西:

protected string GetAmountStyle()
{
    if (AllConn.Any(ProdCurrConn => !Login.Contains(ProdCurrConn.UserName))
    {
        if ((Request.Browser.Browser.Contains("IE") == true))
        {
            //th1.Attributes.Add("style", "padding-right: 5px;");
            //return "padding-right: 1px;";
            return "background-color: #FFFF66;";
        }
        else
        {
            //th1.Attributes.Add("style", "padding-right: 5px;");
            return "background-color: #FFFF66;";
        }
    }

    return string.Empty;
}

答案 1 :(得分:0)

如果AllConn是空集,那么返回路径是什么?

答案 2 :(得分:0)

提示:如果AllConn为空,您的代码会返回什么?

foreach之外添加默认路径;任何:

return "";

return null;

throw new InvalidOperationException("AllConn cannot be empty");

(或其他任何你想要的,真的)

注意:可能知道AllConn由于您了解的某些规则而永远不会为空;但是 - 编译器并不信任你; foreach的逻辑意味着它不能保证进入内部陈述。

答案 3 :(得分:0)

听起来像是存在“AllConn”可能为空的可能性,因此循环中的条件永远不会被执行,因此函数不返回字符串。我将为循环永远不会执行的情况包含一个return语句。

答案 4 :(得分:0)

如果您的AllConn集合中没有任何项目,则不会返回任何内容。试试这个:

protected string GetAmountStyle()
{
    foreach (LFConnection ProdCurrConn in AllConn)
    {

        if (Login.Contains(ProdCurrConn.UserName) == false)
        {
            if ((Request.Browser.Browser.Contains("IE") == true))
            {
                //th1.Attributes.Add("style", "padding-right: 5px;");
                //return "padding-right: 1px;";
                return "background-color: #FFFF66;";
            }
            else
            {
                //th1.Attributes.Add("style", "padding-right: 5px;");
                return "background-color: #FFFF66;";
            }
        }
        else
        {
            //th1.Attributes.Add("style", "padding-right: 5px;");
            return string.Empty;
        }
    }

    return string.Empty;
}