Heim >Backend-Entwicklung >C++ >C# String -Vergleich: Wann sollte ich `==` vs. `equals ()` verwenden?

C# String -Vergleich: Wann sollte ich `==` vs. `equals ()` verwenden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-02-01 19:16:13714Durchsuche

C# String Comparison: When Should I Use `==` vs. `Equals()`?

c# Zeichenkette gleiche sexuelle Probleme:

und vergleiche == Equals() c# bietet zwei Vergleichsstring -Operatoren:

und

. Obwohl sie in der Lage zu sein scheinen, tauschen zu können, zeigen sie einzigartige Verhaltensweisen und können zu unerwarteten Ergebnissen führen. Erforschen wir dieses Sprachproblem in einer bestimmten Szene. == Equals() In einer Silverlight -Anwendung vergleicht eine Bedingung zwei String:

seltsamerweise
<code class="language-csharp">if (((ListBoxItem)lstBaseMenu.SelectedItem).Content.Equals("Energy Attack"))
{
    // 执行代码
}

if (((ListBoxItem)lstBaseMenu.SelectedItem).Content == "Energy Attack")
{
    // 执行代码
}</code>
Vergleiche false und

Rufen Sie True zurück. Warum gibt es so einen Unterschied? == Equals() Die Antwort liegt in der zugrunde liegenden Implementierung dieser Betreiber. Bei Verwendung mit einem Objektexpression wird

als

bewertet. Diese Methode vergleicht die Objektreferenz, nicht die == Inhalt System.Object.ReferenceEquals. In diesem Fall werden die beiden Zeichenfolge in verschiedenen Speicherpositionen gespeichert, also kehren zu False zurück. ReferenceEquals hingegen ist eine virtuelle Methode, die durch abgeleiteten Typ umgeschrieben werden kann. Für String -Typen schreibt die Version des tatsächlichen

content

um, wodurch true zurückgegeben wird. Equals Für den Vergleich der String -Zeichenfolge wird daher empfohlen, intuitiver zu verwenden, und es wird der inhaltsbasierte Vergleich durchführen.

Das obige ist der detaillierte Inhalt vonC# String -Vergleich: Wann sollte ich `==` vs. `equals ()` verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn