In C# gibt es zwei primäre Optionen zum Vergleich von zwei Werten - die "==" Bediener und der "Equals ()" Methode. Diese beiden Alternativen unterscheiden sich jedoch in ihrer Umsetzung und Verwendung.
Die Gleichheit == Operator
Verwenden Sie die, ob zwei Variablen gleich sind, die "==" Operator. Es bietet einen ausgefeilteren Vergleich, da es versucht, festzustellen, ob zwei Elemente dieselbe Referenz sowie denselben Wert teilen. Dies bedeutet, dass auch wenn zwei Objekte den gleichen Wert haben können, sie nicht gleich behandelt werden, wenn sie unterschiedliche Referenzen haben.
In C#die "==" Operator ist ein integrierter Operator, mit dem Referenztypen und primitive Typen verglichen werden können (wie int, doppelt, float und bool). Klassen und Strukturen können den Bediener auch überlasten, um eine eindeutige Vergleichslogik basierend auf dem internen Status der Objekte anzubieten.
Die Equals () -Methode
Der "Equals ()" Die Methode in C# ist eine virtuelle Methode, die zwei Objekte desselben Typs vergleicht, um festzustellen, ob sie denselben Wert oder Inhalt haben. Diese Methode kann verwendet werden, um zwei Zeichenfolgen mit dem gleichen Wert zu vergleichen, der an verschiedenen Speicherorten gespeichert ist.
Die Methode „Equals ()“ in C#kontrastiert standardmäßig Objektreferenzen im Gegensatz zu ihren Werten. Dies impliziert, dass zwei Objekte mit denselben Werten, aber unterschiedliche Referenzen standardmäßig nicht gleich angesehen werden. Um Objekte basierend auf ihren Werten zu vergleichen, die "Equals ()" Die Methode muss in der Klasse überschrieben werden.
So verwenden Sie == Operator und Equals () Methode in C#
Hier ist ein Beispiel in C#, das deutlich unterscheidet "==" Bediener und Gleich () Methode:
mit System verwenden;Im obigen Cod. Die Gleichheit beider Saiten wird dann mit dem überprüft Gleich () Methode und die "==" Operator, und die Ergebnisse sind ausgegeben. Da beide Variablen demselben String -Objekt im Speicher entsprechen, geben beide Methoden true zurück.
Ausgang
Der "==" Operator und das Gleich () Funktionsbehandlungsnullwerte unterschiedlich. Wenn beide Variablen null sind, die "==" Operator Kann verwendet werden, um Nullwerte zu vergleichen und true zurückzugeben. Aber wenn eine der beiden Variablen null ist, die Equals () Methode kann erhöhen a NullReferencexception. Dies bedeutet, dass um die Ausnahme bei der Verwendung der zu verhindern Equals () Methode, Sie müssen sicherstellen, dass keine Variable null ist oder eine Nullprüfung durchführen.
Abschluss
Der Schlüsselunterschied zwischen den "==" Operator und das Equals () Funktion In C# ist ihre Vergleichslogik. Der Equals () Funktion Vergleicht den Wert von zwei Variablen oder Objekten, während die "==" Operator Vergleicht den Wert und die Referenz von zwei. Außerdem, während die "==" Operator ist ein integrierter Bediener, der nicht außer Kraft gesetzt werden kann, die Equals () Funktion Ermöglicht einzelne Klassen, eine spezifische Vergleichslogik anzubieten. Schließlich unterscheiden sie sich darin, wie sie Nullwerte behandeln; Die Equals () Methode Wirft eine Ausnahme an, wenn eine der Variablen null ist.