【发布时间】:2011-10-14 21:37:50
【问题描述】:
我正在我的程序中创建一个保存选项,用于将更改保存到文件中。我正在使用此代码保存并获取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,在调用方法之前为其分配一个类实例 -
SaveChangesToFile中的哪一行引发了异常?是foreach (Stock s in FileStockList)吗?如果是这样,那么FileStockList仍然是null- 你忘了创建它。 -
什么是 FileStockList,它在哪里初始化?
-
向我们展示
StockHandler的前几行代码。