NullReferenceException even when after "new MyType[]&qu

本文关键字:MyType qu new quot even when after NullReferenceException | 更新日期: 2023-09-27 17:58:14

我使用的是MSChart,我正在创建类似的数组

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

但它给出错误

NullReferenceException:对象引用未设置为对象

为什么会出错?

NullReferenceException even when after "new MyType[]&qu

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

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

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

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

datapoint[0] = new DataPoint();

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

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

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

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

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