Sobes.tech
Junior — Middle

Boli situácie, keď ste museli prepísať metódu equals() vo svojich triedach?

sobes.tech AI

Odpoveď od AI

Áno, prepísanie metódy Equals() v C# je často potrebné, keď chcete porovnávať objekty podľa hodnoty, nie podľa odkazu. Napríklad, ak máte triedu Person s poľami Name a Age, a chcete, aby dva objekty boli považované za rovnaké, ak tieto polia zodpovedajú, mali by ste prepísať Equals() a GetHashCode().

Príklad:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }

    public override bool Equals(object obj)
    {
        if (obj is Person other)
        {
            return Name == other.Name && Age == other.Age;
        }
        return false;
    }

    public override int GetHashCode()
    {
        return HashCode.Combine(Name, Age);
    }
}

Toto je dôležité pre správne fungovanie kolekcií, napríklad HashSet<Person> alebo pri porovnávaní objektov v testoch.