Исключение типа "System.NullReferenceException" - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Помогите найти ошибку. Выскакивает исключение "System.NullReferenceException".
Листинг программы
  1. namespace HomeTask06092016
  2. {
  3. class University
  4. {
  5. public University()
  6. {
  7. }
  8. //private List<Student> Students = new List<Student>();
  9. private List<Group> groups = new List<Group>();
  10. // Property for groups;
  11. public List<Group> Groups { get; set; }
  12. private List<Teacher> teachers = new List<Teacher>();
  13. // Property for teachers;
  14. public List<Teacher> Teachers { get; set; }
  15. private List<Subject> subjects = new List<Subject>();
  16. // Property for subjects;
  17. public List<Subject> Subjects { get; set; }
  18. public void AddStudent(Student s, int groupIndex)
  19. {
  20. groups[groupIndex].Students.Add(s);
  21. }
  22.  
  23. public void AddGroup(Group g)
  24. {
  25. groups.Add(g);
  26. }
  27. public void AddSubject(Subject s)
  28. {
  29. subjects.Add(s);
  30. }
  31. public void AddTeacher(Teacher t)
  32. {
  33. teachers.Add(t);
  34. }
  35.  
  36. public void RemoveGroup(int groupIndex)
  37. {
  38. groups[groupIndex].Students.Clear();
  39. groups.RemoveAt(groupIndex);
  40. }
  41. public void RemoveStudent(int groupIndex, int studentIndex)
  42. {
  43. groups[groupIndex].Students.Clear();
  44. groups[groupIndex].Students.RemoveAt(studentIndex);
  45. }
  46. public void RemoveTeacher(int teacherIndex)
  47. {
  48. teachers.RemoveAt(teacherIndex);
  49. }
  50. public void RemoveSubject(int subjectIndex)
  51. {
  52. subjects.RemoveAt(subjectIndex);
  53. }
  54. //public Student this[string groupName][string studentName]{}
  55. // Indexer;
  56. public Student this[string groupName, string studentName]
  57. {
  58. get
  59. {
  60. foreach (var g in groups)
  61. {
  62. if (g.Name == groupName)
  63. foreach (var s in g.Students)
  64. {
  65. if (s.Name == studentName)
  66. {
  67. return s;
  68. }
  69. }
  70. }
  71. return null;
  72. }
  73. set
  74. {
  75. for (int i = 0; i < groups.Count; i++)
  76. {
  77. if (groups[i].Name == groupName)
  78. {
  79. for (int j = 0; j < groups[i].Students.Count; j++)
  80. {
  81. if (groups[i].Students[j].Name == studentName)
  82. groups[i].Students[j] = value;
  83. }
  84. }
  85. }
  86. }
  87. }
  88. public string GroupOf(Student s) {
  89. foreach (var g in groups)
  90. {
  91. foreach (var st in g.Students)
  92. {
  93. if (s == st)
  94. return g.Name;
  95. }
  96. }
  97. return null;
  98. }
  99. }
  100. }
Класс Студента
Листинг программы
  1. namespace HomeTask06092016
  2. {
  3. class Student
  4. {
  5. public string Name { set; get; }
  6. public override string ToString()
  7. {
  8. return Name;
  9. }
  10. private List<Subject> subjects = new List<Subject>();
  11. public List<Subject> Subjects { get; set; } // Property for subjects.
  12. }
  13. }
Main
Листинг программы
  1. namespace HomeTask06092016
  2. {
  3. class Program
  4. {
  5. static void Main(string[] args)
  6. {
  7. /*
  8. University group = new University();
  9. University u = new University();
  10. //u.AddStudent(group);
  11. //u["Vasya"].Name = "Petya"; // проверка;
  12. Console.Read();*/
  13. University targetUnivercity = new University();
  14. Group f = new Group(),s = new Group();
  15. f.Name = "PST"; s.Name = "ELT";
  16. targetUnivercity.AddGroup(f);
  17. targetUnivercity.AddGroup(s);
  18. Student u = new Student(); Student i = new Student();
  19. u.Name = "Petr";
  20. i.Name = "Gucci Mane";
  21. Console.WriteLine(u.Name + " " + i.Name);
  22. targetUnivercity.AddStudent(u, 1);
  23. targetUnivercity.AddStudent(i,2);
  24. Console.WriteLine(targetUnivercity.GroupOf(i));
  25. Console.Read();
  26. }
  27. }
  28. }
Ругается на этот метод.
Листинг программы
  1. public void AddStudent(Student s, int groupIndex)
  2. {
  3. groups[groupIndex].Students.Add(s);
  4. }

Решение задачи: «Исключение типа "System.NullReferenceException"»

textual
Листинг программы
  1. private List<Student> students = new List<Student>();
  2. public List<Student> Students { get; set; }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы