C# NullReferenceException,即使在“之后”;新MyType[]”;?

C# NullReferenceException,即使在“之后”;新MyType[]”;?,c#,arrays,nullreferenceexception,C#,Arrays,Nullreferenceexception,我正在使用MSChart,我正在创建这样的数组 DataPoint[] datapoint = new DataPoint[10]; datapoint[0].SetValueY(86); 但这是一个错误 NullReferenceException:对象 引用未设置为的实例 反对 为什么会出现错误?因为数据点数组中索引0处的对象为空 在SetValueY方法调用之前添加此行: datapoint[0] = new DataPoint(); 您需要对数组(0-9)中的每个索引执行此操作,或者

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

DataPoint[] datapoint = new DataPoint[10];
datapoint[0].SetValueY(86);
但这是一个错误

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


为什么会出现错误?

因为
数据点
数组中索引
0
处的对象为空

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

datapoint[0] = new DataPoint();

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

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

datapoint[0] = new DataPoint();

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

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

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

我不熟悉
数据点
,但它似乎是一个
。因此表达式
newdatapoint[10]
创建了一个包含10个值的数组,所有值都初始化为
null
。您需要在使用元素之前初始化它们。比如说

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

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

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

datapoint[0].SetValueY(86);
DataPoint[]DataPoint=新数据点[10];
对于(int i=0;i
您的数组最初包含10个
null
引用。在使用它之前,必须用实际的对象引用填充它。尝试以下方法:

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

datapoint[0].SetValueY(86);
DataPoint[]DataPoint=新数据点[10];
对于(int i=0;i
您需要初始化阵列中的数据点

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

您需要初始化数组中的数据点

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

new
关键字用于创建内存,然后在
DataPoint[/DataPoint=new DataPoint[10]
中执行什么操作
new
关键字?@jams您可以将其视为创建一个连续的10个插槽,其中可以存储
DataPoint
值。
new
关键字用于创建内存,然后在
DataPoint[]datapoint=new datapoint[10]
正在做什么
new
关键字?@jams您可以将其视为创建一个连续的10个插槽,其中可以存储
datapoint
值。
new
关键字用于创建内存,然后在
datapoint[]datapoint=new datapoint[10]
正在做什么
new
关键字?@jams,它分配足够的内存以适应指定大小的新数组对象,最初包含空引用。简而言之,数组对象确实存在,但不存在它所包含的项。
new
关键字用于创建内存,然后在
DataPoint[]DataPoint=new DataPoint[10]
正在做什么
new
关键字?@jams中,它分配足够的内存以适合指定大小的新数组对象,最初包含空引用。简而言之,数组对象确实存在,但它包含的项不存在。