2

我有一个数组中的问题列表,当在界面上单击一个按钮时,它将转到下一个问题,但是当它位于最后一个问题时,它将切换到摘要页面并显示正确答案的分数。当数组到达最后一个问题时,它会抛出“参数超出范围异常未处理”。我如何让数组停止,以便在最后一个问题之后继续?

这是我进入下一个问题的方法

感谢您的帮助,如果您需要查看代码,请告诉我。

4

2 回答 2

5

使用这个条件。我假设您的数组有 20 个项目,并且由于您的条件 > 20,它会在索引上中断。当您尝试访问第 [20] 个元素时,因为数组已被zero索引。

if (questionNumber >= qu.Count)
于 2013-04-30T20:26:55.560 回答
5

我会考虑使用 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 将为您处理索引。传递每个问题来显示也比依赖一些共享变量要好。

于 2013-04-30T20:46:23.610 回答