对于受保护字符串函数中的每个循环
本文关键字:循环 函数 受保护 字符串 | 更新日期: 2023-09-27 18:27:56
试图在我的Protected字符串函数中为每个循环添加一个,但不断收到错误:"并非所有代码路径都返回值"。请帮忙。
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;
}
}
问题是,如果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;
}
如果AllConn是空集,返回路径是什么?
提示:如果AllConn
为空,您的代码会返回什么?
在foreach
之外添加一个默认路径;任意:
return "";
return null;
throw new InvalidOperationException("AllConn cannot be empty");
(或者你想要的任何东西,真的)
注意:可能是您知道AllConn
从不为空,因为您知道一些规则;然而,编译器在这方面不信任您;CCD_ 8的逻辑意味着它不保证永远进入内部语句。
在我看来,"AllConn"可能是空的,因此循环中的条件永远不会执行,因此函数不会返回字符串。对于循环从不执行的情况,我会包含一个return语句。
如果您的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;
}