Sobes.tech
Junior — Middle

Jaký výsledek dává volání metody GetHashCode u objektu v .NET?

sobes.tech AI

Odpověď od AI

Metoda GetHashCode v .NET vrací celočíselnou hodnotu (hash kód), která se používá pro rychlé porovnání objektů, například při jejich ukládání do hash tabulek (Dictionary, HashSet). Výchozí hodnota je generována na základě vnitřního stavu objektu, ale může být přepsána, aby správně fungovala v kolekcích a při porovnávání objektů.

Příklad přepsání 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 rovné podle Equals měly stejný hash kód.