C# es igual a() vs ==
Este tutorial resaltará las diferencias y similitudes del operador ==
y la función Equals()
en C#.
Diferencia entre el operador ==
y la función Equals()
en C#
El ==
operador es un operador de comparación en C#. El operador ==
compara las identidades de referencia de ambos operandos. Por otro lado, la función Equals()
compara el contenido de dos variables de cadena en C#. Normalmente, ambos se utilizan para comparar dos valores. Pero pueden tener diferentes resultados en diferentes escenarios. El siguiente ejemplo de código mostrará un escenario en el que tanto el operador ==
como la función Equals()
son verdaderas.
using System;
namespace comparison {
class Program {
static void Main(string[] args) {
object var1 = "MMA";
object var2 = var1;
if (var1 == var2) {
Console.WriteLine("== is true");
}
if (var1.Equals(var2)) {
Console.WriteLine("Equals is true");
}
}
}
}
Producción :
== is true
Equals is true
En el código anterior, inicializamos una variable de objeto var2
con var2 = var1
. Significa que tanto var1
como var2
se refieren a la misma identidad en la memoria. Entonces, el operador ==
dará como resultado un resultado true
. Dado que ambos tienen el mismo contenido dentro de ellos, la función Equals()
también dará true
.
Ahora, demostraremos otro escenario en el que el operador ==
da false
pero la función Equals()
devuelve un valor true
. Este escenario se analiza en el siguiente ejemplo de código.
using System;
namespace comparison {
class Program {
static void Main(string[] args) {
object var1 = "MMA";
char[] varc = { 'M', 'M', 'A' };
object var2 = new string(varc);
if (var1 == var2) {
Console.WriteLine("== is true");
}
if (var1.Equals(var2)) {
Console.WriteLine("Equals is true");
}
}
}
}
Producción :
Equals is true
En el código anterior, creamos el array de caracteres varc
y la convertimos a la variable de objeto var2
pasando varc
en el constructor de una variable de cadena. Significa que var1
y var2
apuntan a diferentes identidades en la memoria. El operador ==
devuelve false
porque compara las identidades de referencia de var1
y var2
. Pero, la función Equals()
devuelve verdadero porque está comparando el contenido de var1
y var2
.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn