Heim > Backend-Entwicklung > C++ > Was bedeutet der Operator „!' (Nullverzeihend) in C# 8.0?

Was bedeutet der Operator „!' (Nullverzeihend) in C# 8.0?

Patricia Arquette
Freigeben: 2025-01-09 10:16:45
Original
977 Leute haben es durchsucht

What Does the `!` (Null-Forgiving) Operator Mean in C# 8.0?

null! Bedeutung des Operators

In C# 8.0 und seiner Funktion für nullfähige Referenztypen hat der !-Operator einen neuen Zweck, der als „nulltoleranter Operator“ bezeichnet wird. Wenn dieser Operator auf einen Typ angewendet wird, überschreibt er die NULL-Zulässigkeit des Werts und macht ihn somit nicht NULL-fähig. Das bedeutet, dass NULL zwar standardmäßig NULL-fähig ist, aber als „Nicht-Null“-Typ behandelt wird.

Praxisbeispiel

Stellen Sie sich eine Klasse vor, in der LastName Eigenschaften nullfähig sind und MiddleName Eigenschaften nicht nullbar sind:

<code class="language-csharp">public class Person
{
    public string? LastName { get; set; }
    public string MiddleName { get; set; } = null!;
}</code>
Nach dem Login kopieren

Unterschied zwischen der ersten und zweiten Zeile

  • Erste Zeile: Die Eigenschaft LastName ist nullbar, sodass sie einen Nullwert enthalten kann, der durch den Operator ? dargestellt wird.
  • Zweite Zeile: MiddleName-Attribute sind nicht nullbar und werden durch ! dargestellt. Das bedeutet, dass es keine Nullwerte enthalten kann. Der null!-Ausdruck überschreibt diese Nicht-Nullbarkeit jedoch explizit und behandelt Null als einen Nicht-Null-Wert.

Technische Erklärung

C# 8.0 führte „Nullsicherheit“ ein, bei der alle Referenztypen standardmäßig nicht nullbar sind. Um einen nullbaren Typ darzustellen, muss der Operator ? verwendet werden. Umgekehrt kann der Operator ! auf Typen angewendet werden, die NULL-Werte zulassen, um die Nicht-NULL-Zulässigkeit anzugeben.

Notizen

  • Übermäßigen Gebrauch vermeiden: Der nulltolerante Operator sollte mit Vorsicht verwendet werden, da er den Zweck der Nullsicherheit zunichte macht.
  • Laufzeitausnahmen: Der !-Operator deaktiviert nur Prüfungen auf Compilerebene; wenn der Wert null ist, können weiterhin Laufzeitausnahmen auftreten.
  • Gültige Anwendungsfälle: Trotz seiner Einschränkungen wird der nulltolerante Operator verwendet, wenn der Compiler die Nullfähigkeit eines Werts nicht ableiten kann, wenn Legacy-Code migriert wird oder wenn das Verhalten von Code bei der Verarbeitung von Null getestet wird Könnte hilfreich sein.

Das obige ist der detaillierte Inhalt vonWas bedeutet der Operator „!' (Nullverzeihend) in C# 8.0?. 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