我在一个类中有一个String array
对象,即我想在运行时初始化的String[] particulars
。相同的代码段适用于另一个不是数组的类对象。这里nd
是一个类的对象。
int i=0;
foreach (DataRow row1 in dt1.Rows)
{
nd.particulars[i] = row1["floor"].ToString();
nd.quantity[i] = (double)row1["area"];
nd.rate[i] = (double)row1["rate"];
nd.amount[i] = (double)row1["amount"];
i++;
}
以下代码会抛出一些NullReferenceException
。错误说:
对象引用未设置为对象的实例。
类定义如下:
class NoteDetails
{
public string[] particulars;
public double[] quantity;
public double[] rate;
public double[] amount;
public string[] mparticulars;
public double[] mquantity;
public double[] mrate;
public double[] mamount;
public NoteDetails()
{
particulars = null;
quantity = null;
amount = null;
rate = null;
mparticulars = null;
mquantity = null;
mamount = null;
mrate = null;
}
}
请告诉我我做错了什么?
答案 0 :(得分:1)
你必须初始化你的字符串数组(以及你的其他数组)。你可以在类的构造函数上做到这一点。
nd.particulars = new string[5]; //or whatever size
答案 1 :(得分:0)
* NullReferenceException **似乎你的一个对象是null(nd或row1或dt1)。 如果某些内容为null,请不要忘记实现它 。
您需要调试代码以检查您遇到此问题的位置。
此外,您应该测试您的对象是否为null以避免此错误:
if( dt1 != null ){
//do what you want
}
或像这样(> = C#6)
dt1?.Rows