Junior — Middle
¿Por qué es importante sobrescribir el método GetHashCode en las clases?
sobes.tech AI
Respuesta de la IA
La sobrescritura del método GetHashCode es importante para el correcto funcionamiento de los objetos en colecciones basadas en hash, como Dictionary, HashSet y otros.
Razones:
GetHashCodedevuelve un valor numérico que se utiliza para buscar rápidamente un objeto en las tablas hash.- Si dos objetos se consideran iguales (según el método
Equals), deben devolver el mismo código hash para que las colecciones los manejen correctamente. - Si no se sobrescribe
GetHashCodejunto conEquals, los objetos pueden compararse de manera incorrecta o duplicarse en las colecciones.
Ejemplo:
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);
}
}
De esta manera, la sobrescritura de GetHashCode garantiza la coherencia con Equals y el funcionamiento correcto de los objetos en las estructuras hash.