我使用的MSChart和我建立陣列這樣NullReferenceException即使在「new MyType []」之後?
DataPoint[] datapoint = new DataPoint[10];
datapoint[0].SetValueY(86);
但它給錯誤
的NullReferenceException:對象 參考不設置到 對象的實例。
爲什麼它給出錯誤?
我使用的MSChart和我建立陣列這樣NullReferenceException即使在「new MyType []」之後?
DataPoint[] datapoint = new DataPoint[10];
datapoint[0].SetValueY(86);
但它給錯誤
的NullReferenceException:對象 參考不設置到 對象的實例。
爲什麼它給出錯誤?
您的數組最初包含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
,但它似乎是一個class
。因此,表達式new DataPoint[10]
創建了一個包含10個值的數組,這些值都被初始化爲null
。在使用它們之前,您需要初始化元素。例如,
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 2011-06-03 07:05:28
@jams,它會分配足夠的內存以適合您指定大小的新數組對象,該數組對象最初包含空引用。簡而言之,數組對象確實存在,但不包含它所包含的項目。 – 2011-06-03 07:06:37