コード例 #1
0
        public override bool Equals(object obj)
        {
            // Anforderungen:

            /* Gleicher Typ ?
             * Eines null ?
             * Referenzvergleich
             * Wertevergleich falls Referenzvergleich fehlschlägt
             */

            if (obj is null)
            {
                throw new ArgumentNullException();
            }

            if (obj is Person p) // obj.GetType() == typeof(Person)
            {
                //Referenzvergleich
                if (obj == this)
                {
                    return(true);
                }
                else // Referenzen nicht gleich, stattdessen werte vergleichen
                {   // "Hässliche" Variante ohne GetHashcode();
                    return(Vorname.Equals(p.Vorname) &&
                           Nachname.Equals(p.Nachname) &&
                           Alter.Equals(p.Alter) &&
                           Kontostand.Equals(p.Kontostand));
                }
            }
            else
            {
                return(false);
            }
        }