调用的数组对象设置为NULL,而不是设置为构造函数值
本文关键字:设置 构造函数 NULL 数组 对象 调用 | 更新日期: 2023-09-27 18:29:00
我有一个类,它只有公共automatic properties of strings
,如Name、ID、LastName,我还为它定义了一个构造函数,并将它们定义为string.Empty
。现在,在代码中,我创建了一个类的数组,如下所示:
AlternateAddressSummary[] alternateAddressSummaries = new AlternateAddressSummary[6];
int adrsCounter = -1;
foreach (Addresses adrs in address_alternative)
{
adrsCounter++;
FillAlternateAddressSummaryObject(alternateAddressSummaries[adrsCounter], adrs);
}
FillAlternateAddressSummaryObject
只是填充每个对象的属性,例如:
private void FillAlternateAddressSummaryObject(AlternateAddressSummary alA, Addresses adrs)
{
alA.AlternateAdressLine1 = adrs.City;
//...
}
但是为什么我在alA
上得到NULL
异常?即使在创建这6个数组对象时,它们也被初始化为NULL
。他们不应该按照我在constructor
中所说的设置吗?
这是因为您没有实例化alternateAddressSummaries
的任何成员
你所做的有点像做
AlternateAddressSummary1;
AlternateAddressSummary2;
AlternateAddressSummary3;
...
您已经声明了AlternateAddressSummary
的数组,但实际上还没有实例化它们中的任何一个。他们仍然都是null
如果你做了这个
for(int i=0; i<alternateAddressSummaries.Length; i++)
{
alternateAddressSummaries[i]= new AlternateAddressSummary(/*params*/);
}
它们将被实例化,它们的值将是构造函数设置的任何值。