
[英]how to replace double in an array with index and value given by user and shifting each element to the right and dropping the last element
[英]How to overwrite element in array at given index? [duplicate]
这个问题已经在这里有了答案:
我有一个应用程序,可让用户输入有关课程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;
}
我认为您在创建Student
对象后忘记了初始化Marks
数组
S.Marks = new int[4];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.