我正在尝试搜索列表,然后提取它的一些对象,将它们放入另一个列表并将列表写入文件。
我认为我的代码是正确的,但是当我执行它时,我得到一个NullReference异常。如果有人能检查我的代码,我会非常感激。
这是我使用的搜索方法的代码
public void Search( string day)
{
foreach (Classes c in studentClasses)
{
if (c.Day == day)
{
studentClassesByDay.Add(c);
}
}
}
这就是将新列表添加到文件
的代码private void btnDay_Click(object sender, EventArgs e)
{
SelectDayForm selectDay = new SelectDayForm();
if (selectDay.ShowDialog() == DialogResult.OK)
{
l.Search(selectDay.theDay);
trg.GenerateSortedListReport(l.studentClassesByDay, AppData.byDay);
MessageBox.Show("A list of sorted student classes written to file " + AppData.byDay+ ".");
// txtDay.Text =selectDay.theDay;
}
}
答案 0 :(得分:0)
您没有显示异常发生的哪一行(这会很方便),但您还没有显示studentClassesByDay
已被实例化的位置。
那将是我要检查的第一个。
您展示的代码中唯一的可能性是:
l
为空; trg
为空; l.studentClassesByDay
为空;或AppData
为空(虽然可能不是这样 - 它看起来像一个类)。在每次尝试取消引用之前,只需在调试器中放入一些调试语句(或断点),然后检查值。
根据您的评论,错误的行是:
studentClassesByDay.Add(c);
几乎可以保证(可疑)您实际上没有实例化此变量。我会调查一下。