Heim > Backend-Entwicklung > C++ > Wie vereinfacht der C# 6.0 Null-Bedingungsoperator (?. ) die Nullbehandlung?

Wie vereinfacht der C# 6.0 Null-Bedingungsoperator (?. ) die Nullbehandlung?

Patricia Arquette
Freigeben: 2025-01-25 15:26:08
Original
672 Leute haben es durchsucht

How Does the C# 6.0 Null-Conditional Operator (?. ) Simplify Null Handling?

C# 6.0?

C# 6.0 eingeführt? Dieser Bediener wird normalerweise als leerer bedingter Bediener bezeichnet, der eine einfache und sichere Möglichkeit bietet, auf die Attribute oder aufgerufenen Methoden des leeren Objekts zuzugreifen. Schauen wir uns das folgende Codefragment an:

Lassen Sie uns das Arbeitsprinzip dieses Bedieners aufschlüsseln:

<code class="language-csharp">public class A
{
    public string PropertyOfA { get; set; }
}

...

var a = new A();
var foo = "bar";
if (a?.PropertyOfA != foo)
{
    //somecode
}</code>
Nach dem Login kopieren
Es bewertet zuerst die erste Betriebsnummer (a) und prüft, ob es leer ist. Wenn a leer ist, wird der gesamte Ausdruck als NULL bewertet und nicht weiter bewertet.

Wenn a nicht leer ist, bewerten Sie den Besuch der zweiten Operation (PropertyOFA) als Mitglied von A. In diesem Beispiel greift es auf die Eigenschaft von A von A zuzugreifen.
  • Das Ergebnis des Ausdrucks ist entweder der Wert des Nulls (wenn a leer ist) oder der Wert von A.Propertyofa.
  • Im Wesentlichen wirken die operativen Symbole als Maß für die Verhinderung abnormaler Referenzanomalien. Sie können auf die Attribute zugreifen oder Methoden des leeren Objekts aufrufen, nicht dazu, dass die Anwendung zusammenbricht.
  • Betrachten Sie diese alternative Grammatik:

Obwohl diese Methode das gleiche Ergebnis erzielt hat, beinhaltet sie separate Luftwerte und bedingte Zuordnungen. ?

Zusätzlich kann das Operationssymbol den Expressionstyp ändern. Beispielsweise ist FileInfo.length ein langes Attribut. Wenn Sie es jedoch verwenden?
<code class="language-csharp">string bar = (a == null ? null : a.PropertyOfA);
if (bar != foo)
{
    ...
}</code>
Nach dem Login kopieren

Sie haben endlich einen langen Ausdruck? Dadurch wird die Nachfrage nach explizite Vakuuminspektion beseitigt, vereinfacht Ihren Code und verbessert die Verfügbarkeit.

Das obige ist der detaillierte Inhalt vonWie vereinfacht der C# 6.0 Null-Bedingungsoperator (?. ) die Nullbehandlung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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