gpt4 book ai didi

c# - 初始化时,它说 "Object reference not set to an instance of an object"

转载 作者:太空宇宙 更新时间:2023-11-03 19:33:47 26 4
gpt4 key购买 nike

我是 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com