我有一个只有名称,ID,LastName的公共automatic properties of strings
的类,而且我已经为它定义了一个构造函数,并将它们定义为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;
//...
}
但为什么我会在NULL
上获得alA
例外?即使我创建了这6个数组对象,它们也会被初始化为NULL
。它们不应该被设置为我在constructor
中所说的内容吗?
答案 0 :(得分:3)
那是因为你没有实例化alternateAddressSummaries
你做的有点像这样做
AlternateAddressSummary1;
AlternateAddressSummary2;
AlternateAddressSummary3;
...
您已声明AlternateAddressSummary
的数组,但您实际上并未实例化其中任何一个。他们仍然是null
如果你这样做
for(int i=0; i<alternateAddressSummaries.Length; i++)
{
alternateAddressSummaries[i]= new AlternateAddressSummary(/*params*/);
}
它们将被实例化,它们的值将是构造函数设置它们的值。