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