私はプロジェクトに取り組んでおり、私はC#でのプログラミングの初心者です。何とか解決できない問題があります。どのように起こったのですか:コードを実行すると、アプリケーションは正常に起動しますが、例外 は、「インデックスが配列の境界外にある」ことを示しています。その後、リストボックスの項目をクリックすると、テキストボックスに2番目のオブジェクトが表示されます。だから...(リストボックスの項目をクリックして)動作しているようだが、なぜ配列に関して例外がスローされるのかわからない。 Beneathは現在のコードです。エラー:(Listクラスを使用して)インデックスが配列の境界外にありました
**アップデート:心からお詫び申し上げます。間違ったコードをアップロードしました。このコードすると仮定されています
はコード:
struct studentInfo
{
public string studentID;
public string major;
}
public partial class Form1 : Form
{
private List<studentInfo> studentList = new List<studentInfo>();
public Form1()
{
InitializeComponent();
}
private void ReadInputFile()
{
try
{
StreamReader inputFile;
string line = "";
studentInfo student = new studentInfo();
char[] delimiter = { ',' };
inputFile = File.OpenText("Student Info.txt");
while (!inputFile.EndOfStream)
{
line = inputFile.ReadLine();
string[] token = line.Split(delimiter);
student.studentID = token[0];
student.major = token[1];
studentList.Add(student);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void DisplaystudentID()
{
foreach (studentInfo student in studentList)
{
studentInfoListBox.Items.Add(student.studentID);
}
}
private void DisplayNames()
{
}
private void button1_Click(object sender, EventArgs e)
{
ReadInputFile();
DisplaystudentID();
}
private void studentInfoListBox_SelectedIndexChanged(object sender, EventArgs e)
{
int index = studentInfoListBox.SelectedIndex;
majorTextBox.Text = studentList[index].major;
}
private void button3_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
たライン上では、その例外をスローし、例外の正確なタイプとメッセージは何であるのか? –
おそらく、行の1つにカンマがありませんか?例えば、ファイルの最後の行は、* textとの最後の行ですか、あるいはそこに空白行がありますか? –
こんにちは!例外をスローする行はcatch文でした。 MessageBoxを使ったcatchステートメント例外のメッセージには、「ネイティブ式がコールスタックの上にあるため式を評価できません」というように記述されています。 –