C# Equals() vs ==
In diesem Tutorial werden die Unterschiede und Ähnlichkeiten des Operators ==
und der Funktion Equals()
in C# hervorgehoben.
Unterschied zwischen dem Operator ==
und der Funktion Equals()
in C#
Der Operator ==
ist ein Vergleichsoperator in C#. Der Operator ==
vergleicht die Referenzidentitäten beider Operanden. Andererseits vergleicht die Funktion Equals()
den Inhalt zweier Zeichenkettenvariablen in C#. In der Regel werden beide zum Vergleichen von zwei Werten verwendet. Sie können jedoch in verschiedenen Szenarien unterschiedliche Ergebnisse erzielen. Das folgende Codebeispiel zeigt ein Szenario, in dem sowohl der Operator ==
als auch die Funktion Equals()
wahr sind.
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");
}
}
}
}
Ausgabe:
== is true
Equals is true
Im obigen Code haben wir eine Objektvariable var2
mit var2 = var1
initialisiert. Dies bedeutet, dass sich sowohl var1
als auch var2
auf dieselbe Identität im Speicher beziehen. Der Operator ==
führt also zu einem true
Ergebnis. Da beide den gleichen Inhalt enthalten, gibt die Funktion Equals()
auch true
aus.
Nun werden wir ein anderes Szenario demonstrieren, in dem der Operator ==
false
angibt, die Funktion Equals()
jedoch einen Wert true
zurückgibt. Dieses Szenario wird im folgenden Codebeispiel erläutert.
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");
}
}
}
}
Ausgabe:
Equals is true
Im obigen Code haben wir das Zeichenarray varc
erstellt und es in die Objektvariable var2
konvertiert, indem wir im Konstruktor einer Zeichenkettenvariablen varc
übergeben haben. Dies bedeutet, dass var1
und var2
beide auf unterschiedliche Identitäten im Speicher zeigen. Der Operator ==
gibt false
zurück, da er die Referenzidentitäten von var1
und var2
vergleicht. Die Funktion Equals()
gibt jedoch true zurück, da sie den Inhalt von var1
und var2
vergleicht.
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