Junior — Middle
Waarom is het belangrijk om de methode GetHashCode te overschrijven in klassen?
sobes.tech AI
Antwoord van AI
Het overschrijven van de GetHashCode-methode is belangrijk voor het correct functioneren van objecten in op hash gebaseerde collecties, zoals Dictionary, HashSet en anderen.
Redenen:
GetHashCodegeeft een numerieke waarde terug die wordt gebruikt voor snelle zoekopdrachten naar een object in hash-tabellen.- Als twee objecten als gelijk worden beschouwd (volgens de
Equals-methode), moeten ze dezelfde hash-code retourneren zodat de collecties ze correct kunnen verwerken. - Als
GetHashCodeniet samen metEqualswordt overschreven, kunnen objecten onjuiste vergelijkingen ondergaan of worden gedupliceerd in de collecties.
Voorbeeld:
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);
}
}
Op deze manier zorgt het overschrijven van GetHashCode voor consistentie met Equals en een correcte werking van objecten in hash-structuren.