私はかなり一般的なC#プログラミングに慣れていて、質問、回答、選択肢があるWindowsフォームでクイズを作成しようとしていました。質問、回答、選択肢は別々のクラスに分かれています。 Windowsフォームの部分は、4つのボタンといくつかのテキストボックスで、選択する選択肢(1-4)を選択できます。使用されるすべてのリストは文字列型btwです。 しかし、プログラムを起動しようとすると、TypeInitializerが例外を投げたと言われます。 InnerExceptionは、インデックスが範囲外であったことです。 HRESULTは-2146233036で、ケースには、それは任意のヘルプですが、全体のスタックトレースにある:プログラムを起動しようとすると内部の例外「インデックスが境界外にありました」
VED quizforreal.Display..ctor() VED quizforreal.Program.Main()は、i C:\ Users \ユーザーアンダース\ document \ visual studio 2015 \ Projects \ quizforreal \ quizforreal \ Program.cs:linje 19 ved System.AppDomain._nExecuteAssembly(RuntimeAssemblyアセンブリ、String [] args) ved System.AppDomain.ExecuteAssembly(String assemblyFile、Evidence assemblySecurity、String) [] args) ved Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() ved System.Threading.ThreadHelper.ThreadStart_Context(オブジェクト状態) ved System.Threading.Executio (ExecutionContext executionContext、ContextCallbackコールバック、オブジェクト状態、ブールpreserveSyncCtx) ved System.Threading.ExecutionContext.Run(ExecutionContext executionContext、ExecuteContext executionContext、ContextCallbackコールバック、オブジェクト状態、ブールpreserveSyncCtx) 、ContextCallbackコールバック、状態オブジェクト) VED System.Threading.ThreadHelper.ThreadStart()
ここでは、コードです:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace quizforreal
{
public partial class Display : Form
{
int tæller = 0;
private static Choices choiceobj = new Choices();
private static Questions questobj = new Questions();
private static Answers answerobj = new Answers();
List<string> choices1list = choiceobj.getChoiceOne();
List<string> choices2list = choiceobj.getChoiceTwo();
List<string> choices3list = choiceobj.getChoiceThree();
List<string> choices4list = choiceobj.getChoiceFour();
List<string> questlist = questobj.getQuestions();
List<string> answerlist = answerobj.getAnswers();
public Display()
{
InitializeComponent();
}
public void skifter()
{
switch (tæller)
{
case 0:
choice1.Text = choices1list[0];
choice2.Text = choices2list[0];
choice3.Text = choices3list[0];
choice4.Text = choices4list[0];
quest.Text = questlist[0];
break;
case 1:
choice1.Text = choices1list[1];
choice2.Text = choices2list[1];
choice3.Text = choices3list[1];
choice4.Text = choices4list[1];
quest.Text = questlist[1];
break;
case 2:
choice1.Text = choices1list[2];
choice2.Text = choices2list[2];
choice3.Text = choices3list[2];
choice4.Text = choices4list[2];
quest.Text = questlist[2];
break;
case 3:
choice1.Text = choices1list[3];
choice2.Text = choices2list[3];
choice3.Text = choices3list[3];
choice4.Text = choices4list[3];
quest.Text = questlist[3];
break;
case 4:
choice1.Text = choices1list[4];
choice2.Text = choices2list[4];
choice3.Text = choices3list[4];
choice4.Text = choices4list[4];
quest.Text = questlist[4];
break;
}
}
private void choice1_TextChanged(object sender, EventArgs e)
{
}
private void choice2_TextChanged(object sender, EventArgs e)
{
}
private void choice3_TextChanged(object sender, EventArgs e)
{
}
private void choice4_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
switch (tæller)
{
case 0:
if (choice1.Text == answerlist[0])
{
tæller++;
}
else
{
tæller = 0;
}
break;
case 1:
if (choice1.Text == answerlist[0])
{
tæller++;
}
else
{
tæller = 0;
}
break;
case 2:
if (choice1.Text == answerlist[0])
{
tæller++;
}
else
{
tæller = 0;
}
break;
case 3:
if (choice1.Text == answerlist[0])
{
tæller++;
}
else
{
tæller = 0;
}
break;
case 4:
if (choice1.Text == answerlist[0])
{
tæller++;
}
else
{
tæller = 0;
}
break;
}
}
private void button2_Click(object sender, EventArgs e)
{
switch (tæller)
{
case 0:
if (choice2.Text == answerlist[0])
{
tæller++;
}
else
{
tæller = 0;
}
break;
case 1:
if (choice2.Text == answerlist[0])
{
tæller++;
}
else
{
tæller = 0;
}
break;
case 2:
if (choice2.Text == answerlist[0])
{
tæller++;
}
else
{
tæller = 0;
}
break;
case 3:
if (choice2.Text == answerlist[0])
{
tæller++;
}
else
{
tæller = 0;
}
break;
case 4:
if (choice2.Text == answerlist[0])
{
tæller++;
}
else
{
tæller = 0;
}
break;
}
}
private void button3_Click(object sender, EventArgs e)
{
switch (tæller)
{
case 0:
if (choice3.Text == answerlist[0])
{
tæller++;
}
else
{
tæller = 0;
}
break;
case 1:
if (choice3.Text == answerlist[0])
{
tæller++;
}
else
{
tæller = 0;
}
break;
case 2:
if (choice3.Text == answerlist[0])
{
tæller++;
}
else
{
tæller = 0;
}
break;
case 3:
if (choice3.Text == answerlist[0])
{
tæller++;
}
else
{
tæller = 0;
}
break;
case 4:
if (choice3.Text == answerlist[0])
{
tæller++;
}
else
{
tæller = 0;
}
break;
}
}
private void button4_Click(object sender, EventArgs e)
{
switch (tæller)
{
case 0:
if (choice4.Text == answerlist[0])
{
tæller++;
}
else
{
tæller = 0;
}
break;
case 1:
if (choice4.Text == answerlist[0])
{
tæller++;
}
else
{
tæller = 0;
}
break;
case 2:
if (choice4.Text == answerlist[0])
{
tæller++;
}
else
{
tæller = 0;
}
break;
case 3:
if (choice4.Text == answerlist[0])
{
tæller++;
}
else
{
tæller = 0;
}
break;
case 4:
if (choice4.Text == answerlist[0])
{
tæller++;
}
else
{
tæller = 0;
}
break;
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace quizforreal
{
public class Choices
{
private List<string> choice1list = new List<string>();
private List<string> choice2list = new List<string>();
private List<string> choice3list = new List<string>();
private List<string> choice4list = new List<string>();
public Choices()
{
choice1list[0] = "mulighed1(1)";
choice1list[1] = "mulighed1(2)";
choice1list[2] = "mulighed1(3)";
choice1list[3] = "mulighed1(4)";
choice1list[4] = "mulighed1(5)";
choice2list[0] = "mulighed2(1)";
choice2list[1] = "mulighed2(2)";
choice2list[2] = "mulighed2(3)";
choice2list[3] = "mulighed2(4)";
choice2list[4] = "mulighed2(5)";
choice3list[0] = "mulighed3(1)";
choice3list[1] = "mulighed3(2)";
choice3list[2] = "mulighed3(3)";
choice3list[3] = "mulighed3(4)";
choice3list[4] = "mulighed3(5)";
choice4list[0] = "mulighed4(1)";
choice4list[1] = "mulighed4(2)";
choice4list[2] = "mulighed4(3)";
choice4list[3] = "mulighed4(4)";
choice4list[4] = "mulighed4(5)";
}
public List<string> getChoiceOne()
{
return choice1list;
}
public List<string> getChoiceTwo()
{
return choice2list;
}
public List<string> getChoiceThree()
{
return choice3list;
}
public List<string> getChoiceFour()
{
return choice4list;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace quizforreal
{
public class Questions
{
private List<string> questionslist = new List<string>();
public Questions()
{
questionslist[0] = "Spørgsmål 1";
questionslist[1] = "Spørgsmål 2";
questionslist[2] = "Spørgsmål 3";
questionslist[3] = "Spørgsmål 4";
questionslist[4] = "Spørgsmål 5";
}
public List<string> getQuestions()
{
return questionslist;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace quizforreal
{
class Answers
{
private static Choices choicesobj = new Choices();
List<string> choices1list = choicesobj.getChoiceOne();
List<string> choices2list = choicesobj.getChoiceTwo();
List<string> choices3list = choicesobj.getChoiceThree();
List<string> choices4list = choicesobj.getChoiceFour();
private List<string> answerlist = new List<string>();
public Answers()
{
answerlist[0] = choices1list[0];
answerlist[1] = choices3list[1];
answerlist[2] = choices4list[2];
answerlist[3] = choices1list[3];
answerlist[4] = choices2list[4];
}
public List<string> getAnswers()
{
return answerlist;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace quizforreal
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Display());
}
}
}
は、あなたたちは事前に:)感謝を助けることを願って!
さて、私たちが見るべきコードがない場合は、あなたのコードのバグを見つけるのに役立つと思いますか?それはどのように働くでしょうか? –
存在しないリスト内の要素にアクセスしようとしています。デバッグしてどこを見つけるか。 – Carcigenicate
おっと、ごめんなさい - 私はそれを付け加えて誓ったことがあります – sunero4