GetHashCode existe principalmente para um propósito: servir como uma função de hash quando o objeto é usado como uma chave em uma tabela de hash. … Uma tabela de hash é uma estrutura de dados que associa um valor a uma chave.
Qual é o propósito do GetHashCode?
O método GetHashCode fornece este código hash para algoritmos que precisam de verificações rápidas de igualdade de objetos Para obter informações sobre como os códigos hash são usados em tabelas hash e para alguns algoritmos de código hash adicionais, veja a entrada Função Hash na Wikipedia. Dois objetos que são iguais retornam códigos de hash que são iguais.
Preciso implementar GetHashCode?
É importante implementar equals e gethashcode, devido a colisões, principalmente ao usar dicionários. se dois objetos retornarem o mesmo hashcode, eles serão inseridos no dicionário com encadeamento. Ao acessar o item é usado o método equals.
Quando devemos substituir GetHashCode?
Se você estiver implementando um tipo de referência, considere substituir o método Equals se seu tipo se parecer com um tipo base, como Point, String, BigNumber e assim por diante. Substitua o método GetHashCode para permitir que um tipo funcione corretamente em uma tabela de hash Leia mais orientações sobre operadores de igualdade.
O que é um hash no código?
Hashing é simplesmente passar alguns dados através de uma fórmula que produz um resultado, chamado hash. Esse hash geralmente é uma sequência de caracteres e os hashes gerados por uma fórmula são sempre do mesmo tamanho, independentemente da quantidade de dados que você alimenta nele. Por exemplo, a fórmula MD5 sempre produz hashes de 32 caracteres.