【发布时间】:2014-12-14 11:21:47
【问题描述】:
您好,我有以下问题:
我正在创建一个包含 Person 对象数组的程序。
aantalpersonen = int.Parse(tbArray.Text); // aantal te creëren items in array;
if (aantalpersonen > 5 || aantalpersonen <= 1)
throw new ArgumentOutOfRangeException();
else
{
Persoon[] personenLijst = new Persoon[aantalpersonen];
foreach (Persoon persoon in personenLijst)
{
Persoon pers1 = new Persoon();
}
}
在调试中观察这个给了我 = 一个包含用户定义人数的新数组, 一个包含人数的整数。在其他一些代码行中,我得到一个整数,其中包含当前选择(要编辑)的人。 这一切都很好,但是当我尝试将数据添加到每个人的属性时,我遇到了问题。
private void btnUpdateData_Click(object sender, RoutedEventArgs e)
{
personenLijst[huidigpersoon - 1].Naam = tbNaam.Text;
personenLijst[huidigpersoon - 1].Gewicht = int.Parse(tbGewicht.Text);
personenLijst[huidigpersoon - 1].Lengte = int.Parse(tbLengte.Text);
personenLijst[huidigpersoon - 1].Geboortedatum = dpGeboorte.SelectedDate.GetValueOrDefault(DateTime.Today);
}
这给了我以下错误:
System.NullReferenceException 未处理 H结果=-2147467261 Message=对象引用未设置为对象的实例。
我的第一个问题是我必须使用用户选择的人数来明确声明每个人。但我无法弄清楚我应该如何做到这一点,即使我能做到,我怎样才能确保 personclass 的每个实例都有不同的名称,例如 persoon1 ,persoon2 ..
【问题讨论】:
-
(Persoon persoon in和pers1之间没有关系。你没有填充数组。此外,personenLijst的范围为else块。