Heim > Backend-Entwicklung > C++ > „Ist „is null' oder „== null' besser für die Überprüfung von Null in C#?`

„Ist „is null' oder „== null' besser für die Überprüfung von Null in C#?`

Susan Sarandon
Freigeben: 2024-12-31 02:59:08
Original
678 Leute haben es durchsucht

`Is

Mustervergleich vs. Gleichheitsvergleich mit Null

In C# 7 wurde ein neuer Mustervergleichsoperator „is“ eingeführt als eine Alternative zum Gleichheitsoperator „==“. Während sie sich bei der Prüfung auf Null ähnlich zu verhalten scheinen, gibt es einige subtile Unterschiede.

Semantische Unterschiede:

  • Für Null: Die Verwendung von „is null“ und „== null“ hat den gleichen Effekt.
  • Muster Übereinstimmung: Bei Verwendung mit einem anderen Literal- oder Konstantenwert als Null prüft „is“ auf Typkompatibilität und Musterübereinstimmung. Beispielsweise prüft „if (x is 1)“, ob „x“ vom Typ int ist und den Wert 1 hat.

Implementierungsdetails:

  • "is null": Wird zu einem Aufruf von System.Object.Equals(object, Objekt).
  • "== null": Wird zu einem Aufruf der ceq-Anweisung kompiliert, die eine Gleichheitsprüfung durchführt.

Leistung:

In früheren Versionen des Roslyn-Compilers führte „is null“ im Vergleich zu „== null“ zu einer leichten Leistungseinbuße. aufgrund der zusätzlichen Typ- und Musterübereinstimmungsprüfungen. In neueren Versionen wurde das Verhalten jedoch optimiert und beide Operatoren funktionieren vergleichbar, wenn kein überladener Gleichheitsoperator vorhanden ist.

Verwendungsempfehlungen:

  • Verwenden Sie „ ist null“, wenn Sie sowohl eine Null- als auch eine Typprüfung durchführen möchten.
  • Verwenden Sie „== null“ für einfache Gleichheit prüft, insbesondere wenn die Leistung ein Problem darstellt.
  • Erwägen Sie die Verwendung von „is“ mit Mustervergleich für komplexere Szenarien, wie z. B. die Überprüfung des Typs und Werts einer Konstante oder eines Literals.

Das obige ist der detaillierte Inhalt von„Ist „is null' oder „== null' besser für die Überprüfung von Null in C#?`. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage