Я думаю, что что-то не так с моим методом поиска, иначе он должен работать - PullRequest
0 голосов
/ 18 февраля 2012

Я пытаюсь найти список, а затем извлечь некоторые объекты из него, поместить их в другой список и записать список в файл.

Я думаю, что мой код правильный, но когда я его выполняю, я получаю исключение 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;

        }
    }

1 Ответ

0 голосов
/ 18 февраля 2012

Вы не указали, в какой строке происходит исключение (что было бы удобно), но вы также не показали, где был создан экземпляр studentClassesByDay.

Это будет first вещь, которую я бы проверил.

Единственные возможности в показанном вами коде:

  • l равно нулю;
  • trg равноноль;
  • l.studentClassesByDay ноль;или
  • AppData равен нулю (хотя, вероятно, это не так - выглядит как класс).

Просто поместите несколько операторов отладки (или точки останова в отладчике) перед каждой попыткойРазыщите и проверьте значения.

Исходя из вашего комментария, ошибочная строка:

studentClassesByDay.Add(c);

почти гарантированно (как подозревается), что вы на самом деле не создали эту переменную.Я бы посмотрел на это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...