即使在“new MyType []”之后,NullReferenceException?

时间:2011-06-03 06:39:58

标签: c# arrays nullreferenceexception

我正在使用MSChart,我正在创建像这样的数组

DataPoint[] datapoint = new DataPoint[10];
datapoint[0].SetValueY(86);

但是它给出了错误

  

NullReferenceException:Object   引用未设置为的实例   对象

为什么会出错?

4 个答案:

答案 0 :(得分:3)

因为0数组中索引datapoint处的对象为空。

SetValueY方法调用之前添加此行:

datapoint[0] = new DataPoint();

您需要对数组中的每个索引(0 - 9)执行此操作,或者使用其他方式使用DataPoint对象填充数组(例如,使用LINQ)

答案 1 :(得分:3)

您的数组最初包含10个null引用。在使用之前,您必须使用实际对象引用填充它。尝试类似:

DataPoint[] datapoint = new DataPoint[10];
for (int i = 0; i < datapoint.Length; ++i) {
    datapoint[i] = new DataPoint();
}

datapoint[0].SetValueY(86);

答案 2 :(得分:2)

我对DataPoint不熟悉,但似乎是class。因此,表达式new DataPoint[10]创建一个包含10个值的数组,所有这些值都初始化为null。在使用它们之前,您需要初始化元素。例如

datapoint[0] = new DataPoint();
datapoint[0].SetValueY(86);

答案 3 :(得分:1)

您需要初始化数组中的DataPoints。

DataPoint[] datapoint = new DataPoint[10];
datapoint[0] = new DataPoint();
datapoint[0].SetValueY(86);