public void EqualsZaIzvedeniReferentiTip_UsporedbaReferenciNaIstiObjektUvijekVraćaTrue()
        {
            Student s1 = new Student("Janko", 1, "računarstvo", 3);
            Student s2 = s1;

            Assert.IsTrue(s1.Equals(s2));
            Assert.IsTrue(s2.Equals(s1));
            Assert.IsTrue(Osoba.Equals(s1, s2));
            Assert.IsTrue(Osoba.ReferenceEquals(s1, s2));
        }
        public void EqualsZaIzvedeniReferentiTip_UsporedbaDvijeRazličiteOsobeSIstogSmjeraIGodineVraćaFalse()
        {
            Student s1 = new Student("Janko", 1, "računarstvo", 3);
            Student s2 = new Student("Marko", 3, "računarstvo", 3);

            Assert.IsFalse(s1.Equals(s2));
            Assert.IsFalse(s2.Equals(s1));
            Assert.IsFalse(Osoba.Equals(s1, s2));
            Assert.IsFalse(Osoba.ReferenceEquals(s1, s2));
        }
        public void EqualsZaIzvedeniReferentiTip_UsporedbaDvijeIsteOsobeSRazličitimSmjeromIGodinomVraćaFalse()
        {
            Student s1 = new Student("Janko", 1, "računarstvo", 3);
            Student s2 = new Student("Janko", 1, "elektronika", 3);

            Assert.IsFalse(s1.Equals(s2));
            Assert.IsFalse(s2.Equals(s1));
            Assert.IsFalse(Osoba.Equals(s1, s2));
            Assert.IsFalse(Osoba.ReferenceEquals(s1, s2));
        }
        static void Main(string[] args)
        {
            // dva različita studenta
            Student studentA = new Student("Janko", 1, "Programiranje", 3);
            Student studentB = new Student("Darko", 2, "Administriranje", 2);
            Debug.Assert(Student.Equals(studentA, studentB) == false);

            // novi "Janko" s istim matičnim brojem, isti smjer i godina
            studentB = new Student("Janko", 1, "Programiranje", 3);
            Debug.Assert(Student.Equals(studentA, studentB) == true);

            // "Janko", ali na drugoj godini
            studentB = new Student("Janko", 1, "Programiranje", 2);
            Debug.Assert(Student.Equals(studentA, studentB) == false);

            studentA = studentB;
            Debug.Assert(Student.Equals(studentA, studentB) == true);

            Console.ReadLine();
        }
        static void Main(string[] args)
        {
            // dva različita studenta
            Student studentA = new Student("Janko", 1, "Programiranje", 3);
            Student studentB = new Student("Darko", 2, "Administriranje", 2);

            UsporedbaStudenata(studentA, studentB);

            // novi "Janko" s istim matičnim brojem, isti smjer i godina
            studentB = new Student("Janko", 1, "Programiranje", 3);
            UsporedbaStudenata(studentA, studentB);

            // "Janko", ali na drugoj godini
            studentB = new Student("Janko", 1, "Programiranje", 2);
            UsporedbaStudenata(studentA, studentB);

            studentA = studentB;
            UsporedbaStudenata(studentA, studentB);

            Console.WriteLine("GOTOVO!!!");
            Console.ReadKey();
        }
        public static void UsporedbaStudenata(Student studentA, Student studentB)
        {
            Console.WriteLine(studentA);
            Console.WriteLine(studentB);

            try
            {
                Console.WriteLine(studentA.Equals(studentB));
            }
            catch (NullReferenceException)
            {
                Console.WriteLine("POGREŠKA: studentA je null referenca pa nema metodu Equals!");
            }
            try
            {
                Console.WriteLine(studentB.Equals(studentA));
            }
            catch (NullReferenceException)
            {
                Console.WriteLine("POGREŠKA: studentB je null referenca pa nema metodu Equals!");
            }

            Console.WriteLine(Osoba.ReferenceEquals(studentA, studentB));
        }