Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Metodo Equals

Na video aula foi passado o seguinte código. * if (carlos1.Equals(carlos2)) { Console.WriteLine("São iguais!"); } else { Console.WriteLine("Não são iguais!"); }

        Console.ReadLine();*

Porém fazendo um teste aqui enquanto escrevia o código experimentei fazer da seguinte forma.

  • if (carlos1.CPF.Equals(carlos2.CPF))

          {
              Console.WriteLine("São iguais!");
          }
          else
          {
              Console.WriteLine("Não são iguais!");
          }
    
          Console.ReadLine();*

e mesmo comentando o método equals de que foi adicionado no objeto cliente, o código funcionou e fez a comparação como deveria.

Dito isso, qual o problema em utilizar essa segunda opção de código que utilizei, onde passa o parâmetro a ser comparado, de forma direta?

3 respostas
solução!

Willian,

Não tem problema nenhum, mas a comparação da aula e a sua comparação são diferentes... vou explicar:

A comparação da aula é feita em cima do objeto Cliente (completo), então ele está comparando endereços de memória dos objetos;

DETALHE: O instrutor REDEFINIU a instrução com um "override" dentro da classe Cliente.

O seu caso você está comparando dentro do objeto Cliente somente os CPFs... mas e se os outros campos forem diferentes?

Por favor, leia os links (somente caso você queira ser um ninja):

==========================================================

c# How to find if two objects are equal

https://stackoverflow.com/questions/2920399/c-sharp-how-to-find-if-two-objects-are-equal

==========================================================

C# Object Equals

https://www.educba.com/c-object-equals/

==========================================================

C# | MÉTODO BYTE.EQUALS (OBJECT)

https://acervolima.com/c-metodo-byte-equals-object/#:~:text=C%23%20%7C%20M%C3%A9todo%20Byte.Equals%20%28Object%29%20Este%20m%C3%A9todo%20%C3%A9,para%20comparar%20com%20a%20inst%C3%A2ncia%20atual%20ou%20nulo.

==========================================================

[]'s,

Fabio I.

Obrigado Fábio!

Excelente, um está comparando o local na memória, o outro o "conteúdo" do objeto. Como é um cadastro de clientes, e temos esse parâmetro que deve ser único por pessoa, então atende perfeitamente se aquela pessoa, já está cadastrada ou não no sistema em questão.

Mais uma vez obrigado!

Beleza William,

Se te ajudei, NÃO esqueça de marcar a resposta como correta para que eu possa ganhar uma... "medalha-medalha-medalha... ". Eu e o Mutley adoramos medalhas...

[]'s,

Fabio I.