检测到无法访问的代码,在for循环内部的if语句内部中断


bool AllQuestionsAnswered()
{
for (int i = 0; i < Convert.ToInt32(count); i++)
{
string _1 = "rbchoice1_" + i;
string _2 = "rbchoice2_" + i;
string _3 = "rbchoice3_" + i;
string _4 = "rbchoice4_" + i;
bool c1 = ((RadioButton)tabControl1.Controls[_1]).Checked;
bool c2 = ((RadioButton)tabControl1.Controls[_2]).Checked;
bool c3 = ((RadioButton)tabControl1.Controls[_3]).Checked;
bool c4 = ((RadioButton)tabControl1.Controls[_4]).Checked;
if (c1 == false && c2 == false && c3 == false && c4 == false)
{
return false;
break;
}
}
return true;
}

我上面的代码给了我一个警告"检测到无法访问的代码"。我该怎么修?如果我无视警告,可以吗?请帮忙。

如果return false;已达到,则AllQuestionsAnswered()将熄灭,则不需要break;语句;删除break;,你就可以出发了!

这里需要注意两件事。break可以在循环中用于停止迭代,并在循环后的块中执行下一条语句。而返回会将您从封闭方法中踢出,因此返回后的代码将永远不会执行。在这里,您不需要使用break,因为退货将为您完成这项工作。如果删除return false;并继续break,则此方法将始终返回true

正如Rob在评论中所说:你有一条返回的线,然后是一条中断的线。休息时间无法到达(您刚刚返回)。

最新更新