配列内にある質問のリストがあり、インターフェースでボタンをクリックすると次の質問に進みますが、最後の質問になると要約ページに切り替わり、正解のスコアが表示されます。配列が最後の質問に到達すると、「範囲外の引数の例外が処理されませんでした」がスローされます。最後の質問の後に続行できるように、アレイを停止するにはどうすればよいですか?
これは、次の質問に進むための方法です
助けてくれてありがとう。これ以上コードを見る必要がある場合はお知らせください。
この条件を使用します。配列には20個のアイテムがあり、条件が20を超えているため、インデックスで壊れていると想定しています。zero
配列にインデックスが付けられているため、配列[20]番目の要素にアクセスしようとすると。
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 がインデックス作成を処理します。表示する各質問を渡すことも、共有変数に依存するよりも優れています。