1

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

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;
      }
    }
4

5 回答 5

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;
}
于 2013-08-16T22:32:14.183 回答
0

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

于 2013-08-16T22:30:18.373 回答
0

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

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

return "";

return null;

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

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

注意:由于您知道某些规则,您可能知道它永远不会为AllConn但是 -编译器对此不信任;的逻辑foreach意味着不能保证永远进入内部语句。

于 2013-08-16T22:30:22.877 回答
0

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

于 2013-08-16T22:33:06.323 回答
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;
}
于 2013-08-16T22:34:00.660 回答