如何解决字符串数组对象的NullReference异常?

时间:2017-01-11 11:55:44

标签: c# .net nullreferenceexception

我在一个类中有一个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;
    }
 }

请告诉我我做错了什么?

2 个答案:

答案 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