Junior — Middle
Pourquoi est-il important de redéfinir la méthode GetHashCode dans les classes?
sobes.tech IA
Réponse de l'IA
La redéfinition de la méthode GetHashCode est importante pour le bon fonctionnement des objets dans les collections basées sur le hachage, telles que Dictionary, HashSet et autres.
Raisons :
GetHashCoderenvoie une valeur numérique utilisée pour rechercher rapidement un objet dans les tables de hachage.- Si deux objets sont considérés comme égaux (selon la méthode
Equals), ils doivent renvoyer le même code de hachage pour que les collections les traitent correctement. - Si
GetHashCoden'est pas redéfini avecEquals, les objets peuvent être comparés de manière incorrecte ou dupliqués dans les collections.
Exemple :
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);
}
}
Ainsi, la redéfinition de GetHashCode assure la cohérence avec Equals et le bon fonctionnement des objets dans les structures de hachage.