Junior — Middle
Por que é importante sobrescrever o método GetHashCode nas classes?
sobes.tech IA
Resposta da IA
A sobrescrita do método GetHashCode é importante para o funcionamento correto dos objetos em coleções baseadas em hash, como Dictionary, HashSet e outros.
Razões:
GetHashCodedevolve um valor numérico usado para procurar rapidamente um objeto nas tabelas de hash.- Se dois objetos são considerados iguais (de acordo com o método
Equals), eles devem devolver o mesmo código hash para que as coleções os tratem corretamente. - Se não sobrescrever
GetHashCodejuntamente comEquals, os objetos podem ser comparados de forma incorreta ou duplicados nas coleções.
Exemplo:
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);
}
}
Dessa forma, a sobrescrita de GetHashCode garante a consistência com Equals e o funcionamento correto dos objetos em estruturas de hash.