我有一个数组中的问题列表,当在界面上单击一个按钮时,它将转到下一个问题,但是当它位于最后一个问题时,它将切换到摘要页面并显示正确答案的分数。当数组到达最后一个问题时,它会抛出“参数超出范围异常未处理”。我如何让数组停止,以便在最后一个问题之后继续?
这是我进入下一个问题的方法
感谢您的帮助,如果您需要查看代码,请告诉我。
使用这个条件。我假设您的数组有 20 个项目,并且由于您的条件 > 20,它会在索引上中断。当您尝试访问第 [20] 个元素时,因为数组已被zero
索引。
if (questionNumber >= qu.Count)
我会考虑使用 foreach 循环并稍微重新设计以下解决方案:
public void DisplayQuestion(Question q)
{
txt_block_question.Text = qu.question;
btn_Answer_A.Content = q.a;
btn_Answer_B.Content = q.b;
btn_Answer_C.Content = q.c;
}
public void DisplaySummary()
{
foreach (var q in qu)
{
DisplayQuestion(qu);
}
NavigationService.Navigate(new Uri("/summary_page.xaml", UriKind.Relative));
}
foreach 将为您处理索引。传递每个问题来显示也比依赖一些共享变量要好。