Detaillierte Erläuterung der C#-String-Vergleichsmethode
C# bietet eine Vielzahl von String-Vergleichsmethoden, jede mit ihren eigenen Eigenschaften. In diesem Artikel werden die Unterschiede zwischen drei gängigen Methoden untersucht: den Operatoren CompareTo()
, Equals()
und ==
.
CompareTo()
Methode
CompareTo()
verwendet das Attribut CurrentCulture.CompareInfo
für den Vergleich unter Berücksichtigung der Groß- und Kleinschreibung. Es sortiert Nullwerte vor Nicht-Nullwerten und verwendet kulturspezifische Zeichenzuordnungsregeln, die dazu führen können, dass Zeichen in verschiedenen Kulturen unterschiedlich verglichen werden. Beispielsweise könnten in einer deutschen Umgebung ß und SS als gleich angesehen werden.
Equals()
Methode
Im Gegensatz zu CompareTo()
behandelt Equals()
einen Nullwert als nicht gleich einem Wert. Standardmäßig führt es Vergleiche ohne Berücksichtigung der Groß- und Kleinschreibung durch und behandelt Zeichenfolgen mit derselben Zeichenfolge als gleich. Beachten Sie jedoch, dass Überladungen der Equals()
-Methode die Angabe verschiedener Vergleichsoptionen ermöglichen, z. B. Vergleiche unter Berücksichtigung der Groß- und Kleinschreibung.
==
Operator
==
-Operator wird oft als Synonym für Equals()
angesehen, ruft jedoch tatsächlich die statische Methode Equals(string a, string b)
auf. Im Gegensatz zum Aufruf von Equals()
für eine Nullzeichenfolge führt die Verwendung des ==
-Operators mit einem Nulloperanden jedoch nicht zu einer Nullreferenzausnahme. Es ist wichtig zu bedenken, dass der ==
-Operator auf Referenzgleichheit prüft, während Equals()
auf Wertegleichheit prüft.
Object.ReferenceEquals()
Methode
Wenn Sie Referenzen auf String-Objekte vergleichen müssen, können Sie die Methode Object.ReferenceEquals()
verwenden. Diese Methode prüft, ob die Referenzadressen zweier String-Objekte gleich sind und gibt an, ob sie auf dieselbe Instanz verweisen.
Leitfaden zur Methodenauswahl
Welche Vergleichsmethode Sie wählen, hängt von den spezifischen Anforderungen Ihrer Anwendung ab. Für Vergleiche ohne Berücksichtigung der Groß- und Kleinschreibung und der Kultur ist Equals()
eine gute Wahl. Wenn Sie kulturell unterschiedliche Vergleiche benötigen, verwenden Sie CompareTo()
. Wenn Sie Referenzen auf String-Objekte vergleichen müssen, sollten Sie Object.ReferenceEquals()
verwenden.
Andere Faktoren
Es ist erwähnenswert, dass Überladungen der oben genannten Methoden Optionen zum Festlegen anderer Vergleichsbedingungen bieten, wie z. B. die Behandlung von Groß- und Kleinschreibung und Leerzeichen. Diese Optionen ermöglichen eine genauere Kontrolle über Zeichenfolgenvergleiche und erweitern die Funktionalität von Zeichenfolgenvergleichen in C# weiter.
Das obige ist der detaillierte Inhalt vonWie unterscheiden sich „CompareTo()', „Equals()', „==' und „ReferenceEquals()' beim Vergleich von Strings in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!