Junior — Middle
Waarom worden de methoden GetHashCode en Equals overschreven in een .NET-klasse?
sobes.tech AI
Antwoord van AI
In .NET worden de methoden GetHashCode en Equals overschreven voor correcte vergelijking van objecten en juiste werking met collecties zoals Dictionary en HashSet.
- Equals bepaalt wanneer twee objecten als gelijk worden beschouwd.
- GetHashCode geeft een numerieke code terug die wordt gebruikt voor snelle zoekopdrachten in hash-tabellen.
Als je alleen Equals overschrijft, maar niet GetHashCode, kunnen objecten niet correct werken in hash-collecties. Deze methoden worden meestal samen overschreven om consistentie te garanderen: als Equals true retourneert voor twee objecten, moet hun GetHashCode hetzelfde zijn.
Voorbeeld:
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);
}
}