1
resposta

Utilizando mais de um campo no Equal

Olá, no video sobre Equals e HashCode é citado sobre o uso de Equals com um campo só e como consequência o uso de um campo só no GetHashCode. Caso eu use dois campos tipo nome e matrícula no equals eu posso fazer a soma dos dois HashCodes gerados para usar com retorno do GetHashCode? Qual é a melhor abordagem para esse tipo de situação?

1 resposta

Olá Davi, tudo certo?

É abordado esse método de usar apenas um campo para a comparação exatamente por verificar se o dado índice que o usuário está fazendo a comparação é comparado (igual) a algum outro índice previamente cadastrado.

Se eu procuro por alguém com o CPF 123.456.789-10, não tem porque procurar alguém com o CPF 123.456.789-10 e o nome é Fabiano. Se o índice (CPF) não existe, não tem porque fazer uma segunda comparação.

Lembrando que índices são chaves únicas que não podem ser repetidas.

Neste seu exemplo, a comparação seria sempre feita com a matrícula, não tendo porque comparar o nome e a matrícula.

A função do Equals() é comparar se duas instâncias de objeto são iguais. Mais informações na documentação.

Bons estudos!