Junior — Middle
Warum ist es wichtig, die Methode GetHashCode in Klassen zu überschreiben?
sobes.tech KI
Antwort von AI
Das Überschreiben der Methode GetHashCode ist wichtig für das korrekte Funktionieren von Objekten in hash-basierten Sammlungen wie Dictionary, HashSet und anderen.
Gründe:
GetHashCodegibt einen numerischen Wert zurück, der für die schnelle Suche nach einem Objekt in Hash-Tabellen verwendet wird.- Wenn zwei Objekte als gleich angesehen werden (nach der Methode
Equals), sollten sie denselben Hash-Code zurückgeben, damit die Sammlungen sie korrekt verarbeiten. - Wenn
GetHashCodenicht zusammen mitEqualsüberschrieben wird, können Objekte falsch verglichen oder dupliziert werden in den Sammlungen.
Beispiel:
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);
}
}
Auf diese Weise stellt die Überschreibung von GetHashCode die Konsistenz mit Equals sicher und sorgt für das korrekte Funktionieren der Objekte in Hash-Strukturen.