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

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

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

Добрый день. Помогите найти ошибку. Выскакивает исключение "System.NullReferenceException".
namespace HomeTask06092016
{
    class University
    {
       public University()
        {
           
        }
        //private List<Student> Students = new List<Student>();
        private List<Group> groups = new List<Group>();
        // Property for groups;
        public List<Group> Groups { get; set; } 
        private List<Teacher> teachers = new List<Teacher>();
        // Property for teachers;
        public List<Teacher> Teachers { get; set; } 
        private List<Subject> subjects = new List<Subject>();
        // Property for subjects;
        public List<Subject> Subjects { get; set; }
 
        public void AddStudent(Student s, int groupIndex)
        {
            groups[groupIndex].Students.Add(s);
        }

        public void AddGroup(Group g)
        {
            groups.Add(g);
        }
 
        public void AddSubject(Subject s)
        {
            subjects.Add(s);
        }
 
        public void AddTeacher(Teacher t)
        {
            teachers.Add(t);
        }

        public void RemoveGroup(int groupIndex)
        {
            groups[groupIndex].Students.Clear();
            groups.RemoveAt(groupIndex);
 
        }
 
        public void RemoveStudent(int groupIndex, int studentIndex)
        {
            groups[groupIndex].Students.Clear();
            groups[groupIndex].Students.RemoveAt(studentIndex);
        }
 
        public void RemoveTeacher(int teacherIndex)
        {
            teachers.RemoveAt(teacherIndex);
 
        }
 
        public void RemoveSubject(int subjectIndex)
        {
            subjects.RemoveAt(subjectIndex);
 
        }
 
        //public Student this[string groupName][string studentName]{}
        // Indexer;
        public Student this[string groupName, string studentName] 
        {
            get
            {
                foreach (var g in groups)
                {
                    if (g.Name == groupName)
                        foreach (var s in g.Students)
                        {
                            if (s.Name == studentName)
                            {
                                return s;
                            }
                        }
                }
                return null; 
            }
            set
            {
                for (int i = 0; i < groups.Count; i++)
                {
                    if (groups[i].Name == groupName)
                    {
                        for (int j = 0; j < groups[i].Students.Count; j++)
                        {
                            if (groups[i].Students[j].Name == studentName)
                                groups[i].Students[j] = value;
                        }
                    }
 
                }
 
            }
        }
        public string GroupOf(Student s) {
            foreach (var g in groups)
            {
                foreach (var st in g.Students)
                {
                    if (s == st)
                        return g.Name;
                }
            }
            return null;
        }
    }
}
Класс Студента
namespace HomeTask06092016
{
    class Student
    {
        public string Name { set; get; }
 
        public override string ToString() 
        {
            return Name;
        }
 
        private List<Subject> subjects = new List<Subject>();
        public List<Subject> Subjects { get; set; } // Property for subjects.
    }
}
Main
namespace HomeTask06092016
{
    class Program
    {
        static void Main(string[] args)
        {
            /*           
            University group = new University();
            University u = new University();
            //u.AddStudent(group);
            //u["Vasya"].Name = "Petya"; // проверка;
            Console.Read();*/
            University targetUnivercity = new University();
            Group f = new Group(),s = new Group();
            f.Name = "PST"; s.Name = "ELT";
            targetUnivercity.AddGroup(f);
            targetUnivercity.AddGroup(s);
            Student u = new Student(); Student i = new Student();
            u.Name = "Petr";
            i.Name = "Gucci Mane";
            Console.WriteLine(u.Name + " " + i.Name);
            targetUnivercity.AddStudent(u, 1);
            targetUnivercity.AddStudent(i,2);
            Console.WriteLine(targetUnivercity.GroupOf(i));
            Console.Read();
 
        }
 
    }
}
Ругается на этот метод.
public void AddStudent(Student s, int groupIndex)
        {
            groups[groupIndex].Students.Add(s);
        }

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

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

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


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

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

8   голосов , оценка 4.5 из 5
Похожие ответы