// tipski sigurna (type-safe) implementacija
 public bool Equals(Osoba obj)
 {
     // Implementirati tipski sigurnu usporedbu tako da metoda Main prođe bez problema
     if (this.GetType() != obj.GetType())
         return false;
     Osoba a = (Osoba)obj;
     if ((Osoba.Equals(this.m_ime, a.m_ime)) == false)
         return false;
     return m_matičniBroj.Equals(a.m_matičniBroj);
 }
 public bool Equals(Osoba obj)
 {
     // Preslikati implementaciju metode Equals iz EqualsRefTip
     if (this.GetType() != obj.GetType())
         return false;
     Osoba a = (Osoba)obj;
     if ((Osoba.Equals(this.m_ime, a.m_ime)) == false)
         return false;
     return m_matičniBroj.Equals(a.m_matičniBroj);
 }
        public bool Equals(Osoba obj)
        {
            //  Preslikati implementaciju metode Equals iz EqualsRefTip
            Osoba drugi = (Osoba)obj;
            if (Osoba.Equals(this.m_ime, drugi.m_ime) == false)
                return false;
            return m_matičniBroj.Equals(drugi.m_matičniBroj);

            if (obj == null)
                return false;

            if (this.GetType() != obj.GetType())
                return false;

            return true;
        }