我正在我的程序中创建一个保存选项,用于保存对文件的更改。我正在使用此代码来保存并获取MessageBox
以显示进程的结果,我在此行上收到错误“对象引用未设置为对象的实例”。从方法返回布尔值
SaveFileCheck = StockHandler.SaveChangesToFile();
这是我的代码
private void Save_Click(object sender, EventArgs e)
{
bool SaveFileCheck = false;
var result = MessageBox.Show("Are you sure you want to Save the changes ?", "My Application",
MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk);
if (result == DialogResult.Yes)
{
SaveFileCheck = StockHandler.SaveChangesToFile();
if (SaveFileCheck)
{
MessageBox.Show("The process was a success");
}
else
{
MessageBox.Show("The process failed please make sure that the file is not been used and try again");
}
//Save the file back
}
}
}
}
public bool SaveChangesToFile()
{
try
{
if (FileName != null)
{
using (StreamWriter Write = new StreamWriter(FileName, false))
{
foreach (Stock s in FileStockList)
{
Write.Write(s.ToString() + "\r\n");
}
}
}
else {
return false;
}
}
catch(IOException ex)
{
return false;
throw new ArgumentException("something went wrong an error" + ex + "is been cought");
}
return true;
}
'StockHandler'必须为'null';你确定你正在实例化它吗? (如'StockHandler = new StockHandler()') –
'StockHandler'为'null',在调用方法之前为其指定一个类实例 – BrokenGlass
SaveChangesToFile中的哪行引发异常?它是“foreach(FileStockList中的股票)”吗?如果是这样的话,那么'FileStockList'仍然是'null' - 你忘了创建它。 –