構造体から値を返そうとすると、「null参照例外」が発生します。
コードは次のとおりです。
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を含むサブを呼び出すことによってアイテムを初期化します。ファイルが存在することを確認した後、ストリームリーダーを使用して、特定の行が検出されて停止するまで、ファイルの行を1つずつ読み取りました。問題は、ファイルが存在するかどうかをチェックし、特定の行が見つからない場合です。アイテムをfalseに初期化し、行が見つからない場合はfalseに設定するのが難しい場合でも、nullを返します。注:これはめったに発生せず、他のファイルにアクセスして読み取る場合や、同じファイル内でnullを返す場合でも正常に機能します。
注:私が遭遇した別の問題は、それが読み取る行をスキップすることです。
これの原因は何でしょうか?