我是 C# 的新手,我有一个错误,我无法猜测它为什么会发生。这是上下文:
我有一个 DataPair 类,它就是一对数据(字符串、 float )。我还有另一个类 DataSet,它是一个数据对数组。
DataSet 有两个私有(private)成员:
private DataPair [] _datapair;
private int _size;
DataSet 的构造函数不对_datapair 做任何操作,并将_size 设置为0。
我用 Append 方法填充 DataSet,它执行如下操作:
public void Append(DataPair pair)
{
_datapair[_size] = new DataPair(pair);
_size++;
}
我从另一个方法 FillFromFile 调用 Append:
public void FillFromFile(string filepath)
{
try
{
if (System.IO.File.Exists(filepath))
{
System.IO.StreamReader sr = new System.IO.StreamReader(filepath);
string[] currentdata;
while (sr.Peek() >= 0)
{
currentdata = sr.ReadLine().Replace(',', '.').Trim().Split(';');
this.Append(new DataPair(currentdata[0], System.Convert.ToSingle(currentdata[1])));
}
sr.Close();
}
}
catch (Exception e)
{
Console.WriteLine("Error in datafile: {0}", e.ToString());
}
}
它似乎应该起作用:它为每个 Append 创建(新)一个新的 DataPair。
但是我在执行的时候出现了这个错误:
"Object reference not set to an instance of an object" in function Append.
发生了什么事?
最佳答案
您还没有初始化_dataPair。 _datapair = new DataPair[大小];
反正Append里面的代码是错的。您不能以这种方式增加数组的大小。也许你使用 List<DataPair>
会更好而不是数组。
关于c# - 初始化时,它说 "Object reference not set to an instance of an object",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3253154/