C# Equals() vs ==
Ce tutoriel mettra en évidence les différences et similitudes de l’opérateur ==
et de la fonction Equals()
en C#.
Différence entre l’opérateur ==
et la fonction Equals()
en C#
L’opérateur ==
est un opérateur de comparaison en C#. L’opérateur ==
compare les identités de référence des deux opérandes. D’autre part, la fonction Equals()
compare le contenu de deux variables chaîne en C#. En règle générale, les deux sont utilisés pour comparer deux valeurs. Mais, ils peuvent avoir des résultats différents dans différents scénarios. L’exemple de code suivant montrera un scénario dans lequel l’opérateur ==
et la fonction Equals()
sont tous les deux vrais.
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");
}
}
}
}
Production:
== is true Equals is true
Dans le code ci-dessus, nous avons initialisé une variable objet var2
avec var2 = var1
. Cela signifie que var1
et var2
font référence à la même identité dans la mémoire. Ainsi, l’opérateur ==
aboutira à un résultat true
. Comme ils ont tous les deux le même contenu à l’intérieur, la fonction Equals()
donnera également true
.
Nous allons maintenant démontrer un autre scénario dans lequel l’opérateur ==
donne false
mais la fonction Equals()
renvoie une valeur true
. Ce scénario est décrit dans l’exemple de code ci-dessous.
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");
}
}
}
}
Production:
Equals is true
Dans le code ci-dessus, nous avons créé le tableau de caractères varc
et l’avons converti en variable objet var2
en passant varc
dans le constructeur d’une variable chaîne. Cela signifie que var1
et var2
pointent tous les deux vers des identités différentes dans la mémoire. L’opérateur ==
renvoie false
car il compare les identités de référence de var1
et var2
. Mais, la fonction Equals()
renvoie true car elle compare le contenu de var1
et 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