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>
Unterschied zwischen der ersten und zweiten Zeile
LastName
ist nullbar, sodass sie einen Nullwert enthalten kann, der durch den Operator ?
dargestellt wird. 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
!
-Operator deaktiviert nur Prüfungen auf Compilerebene; wenn der Wert null ist, können weiterhin Laufzeitausnahmen auftreten. 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!