c# Objektvergleich: Verstehen Sie die Differenz zwischen gleichen Operatoren und Equals () -Methoden
In C#ist der gleichwertige Vergleich der wichtigste Teil der Programmierung. Zwei Methoden gleichen häufig verwendeten Objekte sind gleiche Computersymbole (== und! =) Und Equals () -Methoden. Das Verständnis der subtilen Unterschiede dieser beiden Methoden ist jedoch für die Vermeidung von Unfällen von wesentlicher Bedeutung.
Gleiche Computersymbole (== und! =)
gleiches Computer (== und! =) Der Ausführungswerttyp entspricht dem Vergleich. Für Referenztypen (z. B. Zeichenfolge, Objekte usw.) werden sie mit Objektreferenzen verglichen, nicht mit dem tatsächlichen Inhalt des Objekts. Dies bedeutet, dass wenn die beiden Referenzvariablen auf die gleiche Objektinstanz hinweisen, == zurückgibt!
In Ihrem Beispiel vergleichen Sie die beiden String -Objekte:
Da das String -Objekt unveränderlich ist, werden sie standardmäßig als Werttyp angesehen. Daher ist der Vergleich des Operators der Wert der Zeichenfolge, der in diesem Beispiel nicht gleich ist. Daher werden die Bedingungen als falsch bewertet.
<code class="language-csharp">if (((ListBoxItem)lstBaseMenu.SelectedItem).Content == "Energy Attack") { // 执行代码 }</code>
Equals () MethodeDie Methode
Equals () ist eine virtuelle Methode. Im Gegensatz zu gleichen Operatoren vergleicht die Equals () -Methode den tatsächlichen Inhalt des Objekts unabhängig von ihren Zitaten. Für String vergleicht die Equals () -Methode die Zeichensequenz der Zeichenfolge. Da Ihre Situation das Vergleich der beiden Zeichen -Zeichenfolgenwörter beinhaltet, gibt die Equals () -Methode wahr zurück, da die Zeichensequenz gleich ist.
Zusammenfassung
Die Auswahl der Verwendung gleicher Operatoren und Equals () -Methoden hängt von bestimmten Szenen und den erforderlichen Verhaltensweisen ab. Im Allgemeinen sollte das Rechensymbol für den gleichen Vergleich verwendet werden, und die Methode Equals () sollte verwendet werden, um den gleichen Vergleich zu referenzieren.<code class="language-csharp">if (((ListBoxItem)lstBaseMenu.SelectedItem).Content.Equals("Energy Attack")) { // 执行代码 }</code>Nach dem Login kopieren
Das obige ist der detaillierte Inhalt vonC# Gleichheitsvergleiche: Wann sollte ich `==` vs. `equals ()` verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!