2

配列内にある質問のリストがあり、インターフェースでボタンをクリックすると次の質問に進みますが、最後の質問になると要約ページに切り替わり、正解のスコアが表示されます。配列が最後の質問に到達すると、「範囲外の引数の例外が処理されませんでした」がスローされます。最後の質問の後に続行できるように、アレイを停止するにはどうすればよいですか?

これは、次の質問に進むための方法です

助けてくれてありがとう。これ以上コードを見る必要がある場合はお知らせください。

4

2 に答える 2

5

この条件を使用します。配列には20個のアイテムがあり、条件が20を超えているため、インデックスで壊れていると想定しています。zero配列にインデックスが付けられているため、配列[20]番目の要素にアクセスしようとすると。

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 に答える