我有一个foreach循环中if和else条件的return语句。但是,我得到了这个错误。但是,当我在循环结束后添加return语句时,该错误将被消除。没关系!但是下面的代码有什么问题?
public static bool Function(List<String> list)
{
foreach (var item in list)
{
if(item != "test")
{
return false;
}
else
{
return true;
}
//return false
}
}
如果list
为空(即没有项目)或为空,则循环将不会运行。这意味着代码无法到达任何return
语句,因为它们都在循环内。在这种情况下,程序无法知道从该方法返回什么值。通过该方法的“路径”不会返回值。
这是不可能的情况-非无效方法必须返回something,因此编译器将不允许您构建和运行程序,直到您通过在末尾添加额外的return
语句来解决它为止循环结束后,以介绍我描述的情况。
[list
可以为空,foreach
不会执行任何迭代,因此您应该在foreach
块之外返回一个值
public static bool Function(List<String> list)
{
foreach (var item in list)
{
if(item != "test")
{
return false;
}
else
{
return true;
}
//return false
}
return false;
}
您应该像这样编辑代码来解决此问题,或者检查列表是否为空。
public static bool Function(List<String> list)
{
foreach (var item in list)
{
if(item != "test")
{
return false;
}
}
return true;
}