예제 #1
0
        static void Main(string[] args)
        {
            Person pnew = new Person("Александр", "Димов", new DateTime(1996, 3, 20));
            Student s1 = new Student(pnew, Education.Specialist, 123);

            Console.WriteLine(s1.ToShortString());

            Exam e1 = new Exam();
            Exam e2 = new Exam("Матан", 3, new DateTime(2016, 1, 30, 10, 0, 0));
            Exam e3 = new Exam("ССПД", 4, new DateTime(2016, 1, 16, 8, 5, 0));
            s1.AddExams(e1, e2, e3);

            Test t1 = new Test();
            Test t2 = new Test("Социология", true);
            s1.AddTests(t1, t2);

            Console.WriteLine(s1.ToString());

            Person p1 = new Person("Станислав", "Одинцов", new DateTime(1990, 5, 13));
            Person p2 = new Person("Станислав", "Одинцов", new DateTime(1990, 5, 13));
            Console.WriteLine(p1.GetHashCode() + " | " + p2.GetHashCode());

            Console.WriteLine(s1.info);

            Student s2 = s1.DeepCopy() as Student;
            s1.gsGroup = 100;

            Console.WriteLine("\n" + s1.ToShortString() + "\n");
            Console.WriteLine(s2.ToShortString());

            try
            {
                s1.gsGroup = 100;
            }
            catch (ArgumentException ex)
            {
                Console.WriteLine(ex.Message);
            }

            Console.WriteLine("\n--Экзамены на 4 и 5--");
            foreach (Object obj in s1.examList)
            {
                if ((obj as Exam).grade > 3)
                    Console.WriteLine(obj.ToString());
            }
        }
예제 #2
0
        public override object DeepCopy()
        {
            Student ns = new Student(base.DeepCopy() as Person, form, group);
            ns.exams = new Exam[exams.Length];

            for (int i = 0; i < exams.Length; i++)
            {
                ns.exams[i] = exams[i].DeepCopy() as Exam;
            }

            foreach (Object obj in tests)
            {
                ns.tests.Add((obj as Test).DeepCopy());
            }

            return ns;
        }