Sobes.tech
Junior — Middle

Aký výsledok dá volanie metódy GetHashCode na objekte v .NET?

sobes.tech AI

Odpoveď od AI

Metóda GetHashCode v .NET vracia celé číslo (hash kód), ktoré sa používa na rýchle porovnávanie objektov, napríklad pri ich ukladaní do hash tabuliek (Dictionary, HashSet). Predvolene je generovaná na základe vnútorného stavu objektu, ale môže byť prepísaná, aby zabezpečila správnu funkciu v kolekciách a pri porovnávaní objektov.

Príklad prepísania GetHashCode spolu s Equals:

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);
    }
}

Je dôležité, aby objekty považované za rovnaké podľa Equals mali rovnaký hash kód.