C# - Fundamentos : Diferença entre Equals e ==
Na série C# Fundamentos vou abordar os conceitos básicos da linguagem C#. Hoje veremos qual a diferença entre Equals e ==. |
Usar o método Equals() ou o operador == ?
a.Equals(b) ou a == b ?
|
Os tipos
de dados no .Net Framework podem ser classificados de acordo com o fato de uma
variável de um tipo específico armazenar seus próprios dados ou um ponteiro para
os dados.
Se a variável armazena seus próprios dados, é um tipo por valor e se ela
contém um ponteiro para dados em outro lugar na memória, é um tipo de
referência.
Você pode atribuir um tipo de referência ou um tipo por valor a uma variável do
tipo de dados Object.
O método Equals() e operador
== são usados para comparar valores em variáveis por tipo e por
referência e retornam o valor booleano (true/false).
Comparando tipos por valor
Para tipos por valor tanto o operador == como o método Equals() atuam da mesma forma; ambos comparam os dois objetos por valor:
Ambos retornam true pois neste caso ambos comparam o objeto pelo valor.
Comparando tipos por referência
Para tipos por referência o método Equals() opera de forma diferente do operador == .
Aqui temos que os objetos possuem o mesmo conteúdo mas elas apontam para instâncias diferentes. Assim == retorna false e Equals() retorna true.
Enquanto o operador == compara retornos de referência true quando ambas as referências apontam para o mesmo objeto, Equals() compara o objeto por valor e retornará true se as referências apontarem para objetos que são equivalentes.
Resumindo:
Veja este exemplo:
Neste código temos que o conteúdo e as referências de o e o1 são os mesmos. Logo o valor de ambos será true.
E estamos conversados...
"Deus nunca foi visto por alguém. O
Filho unigênito (Jesus), que está no seio do Pai, esse o revelou."
João 1:18
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET
https://msdn.microsoft.com/pt-br/library/84787k22(v=vs.110).aspx
https://msdn.microsoft.com/en-us/library/858x0yyx(v=vs.110).aspx
https://www.toptal.com/c-sharp/top-10-mistakes-that-c-sharp-programmers-make