当我尝试从结构中返回一个值时,我遇到了“空引用异常”。
这是代码:
AssetItem item = new AssetItem();
item = initModified();
bool found = false;
int index = getIndex(barcode);
string modifiedFile = filepath + "Modified\\" + dir + "\\" + index + ".asdt";
if(File.Exists(modifiedFile))
{
using(StreamReader reader = new StreamReader(modifiedFile))
{
string line = reader.ReadLine();
while(line.Trim()!="")
{
string[] split = line.Split(',');
if(split[1]==barcode)
{
found = true;
break;
}
line = reader.ReadLine();
}
reader.Close();
}
}
if(found)
{
item.modified = true;
}
else
{
item.modified = false;
}
return item;
我通过调用包含该 item.modified = false 的子程序来初始化项目。检查文件是否存在后,我使用流读取器逐行读取文件的行,直到找到特定行并停止。问题是当它检查文件是否存在并且没有找到特定行时。即使很难,它也会返回 null 我将 item 初始化为 false 并在找不到该行时将其设置为 false。注意:当我访问其他文件以读取甚至在它返回 null 的同一文件中时,这种情况很少发生并且工作正常。
注意:我遇到的另一个问题是它跳过了它读取的一行。
这可能是什么原因?