我有一个应用程序,可让用户输入有关课程ID,名称,模块1-模块4标记的详细信息。我有一个添加按钮和一个用于编辑的按钮。每当用户输入他/她的详细信息时,所有内容都存储在名为allStudent
的列表中,变量存储在结构中,模块标记存储为数组Marks
,并且ID也添加到列表框中用户可以选择和编辑。我的问题是,当我单击“编辑”时,出现错误“ System.NullReferenceException:'对象引用未设置为对象的实例。' “它在S.Marks[0] = int.Parse(txtM1.Text);
中突出显示btnEdit_Click
struct Student
{
public int ID;
public string Name;
public int[] Marks;
}
List<Student> allStudents = new List<Student>();
private void btnAdd_Click(object sender, EventArgs e)
{
Student S = new Student();
S.Marks = new int[4];
S.ID = int.Parse(txtId.Text);
S.Name = txtName.Text;
S.Marks[0] = int.Parse(txtM1.Text);
S.Marks[1] = int.Parse(txtM2.Text);
S.Marks[2] = int.Parse(txtM3.Text);
S.Marks[3] = int.Parse(txtM4.Text);
allStudents.Add(S);
lstBox.Items.Add(S.ID);
}
private void btnEdit_Click(object sender, EventArgs e)
{
Student S = new Student();
S.ID = int.Parse(txtId.Text);
S.Name = txtName.Text;
S.Marks[0] = int.Parse(txtM1.Text);
S.Marks[1] = int.Parse(txtM2.Text);
S.Marks[2] = int.Parse(txtM3.Text);
S.Marks[3] = int.Parse(txtM4.Text);
allStudents[lstBox.SelectedIndex] = S;
}
答案 0 :(得分:3)
我认为您在创建Marks
对象之后忘了初始化Student
数组
S.Marks = new int[4];