Was ist der Null-Koaleszenzoperator in C#?

Was Ist Der Null Koaleszenzoperator In C



C# ist eine weit verbreitete Programmiersprache zur Erstellung effizienter und robuster Anwendungen für verschiedene Plattformen. Die Sprache verfügt über viele erweiterte Funktionen, darunter die Null-Koaleszenzoperator , was dazu beiträgt, komplexen Code zu vereinfachen, indem eine kompakte Syntax für die Verarbeitung von Nullwerten bereitgestellt wird. Dieser Operator erfreut sich bei Entwicklern großer Beliebtheit, die nach einer unkomplizierten Methode zur Handhabung suchen Null Werte in ihren Projekten.

In diesem Artikel wird ausführlich darauf eingegangen Null-Koaleszenzoperator .







Was ist ein Null-Koaleszenzoperator in C#?

In C# ist das Symbol für die Null-Koaleszenzoperator Ist ?? . Wenn eine Variable null ist, wird ihr ein Standardwert zugewiesen.



Zum Beispiel, wenn wir eine Variable haben X Das kann null sein und wir möchten ihm einen Standardwert von 10 zuweisen. Wenn es null ist, können wir das verwenden Null-Koaleszenzoperator folgendermaßen:



int y = x ?? 10





Diese Anweisung weist den Wert von zu 10 zu y, wenn x null ist, andernfalls nimmt es den Wert von x an.

Es wird der Wert des linken Operanden zurückgegeben, wenn dieser nicht null ist. Der rechte Operand wird untersucht und das Ergebnis wird zurückgegeben, wenn es null ist. Wenn alternativ der linke Operand einen Wert ungleich Null ergibt, wird der rechte Operand nicht ausgewertet.



Die traditionelle Art, den Code ohne zu schreiben Null-Koaleszenzoperator Ist:

Wenn ( Ergebnis ist null )

zurückkehren neue Liste < Person > ( ) ;

zurückkehren Ergebnis;

Wir können dies auf eine einzige Zeile zusammenfassen, die sowohl den Nicht-Null-Standardwert als auch die Nullprüfung mit dem enthält Null-Koaleszenzoperator :

zurückkehren Ergebnis ?? neue Liste < Person > ( ) ;

Einige wichtige Punkte, die Sie beachten sollten Null-Koaleszenzoperator Sind:

  • Eine Variable muss der linke Operand des ?? sein. Operator.
  • Der linke Operand des Operators ??= darf kein Typ sein, der keine NULL-Werte zulässt.
  • Der Nullkoaleszenzoperator kann nicht überladen werden.
  • Der Nullkoaleszenzoperator ist rechtsassoziativ. Das bedeutet, dass ein Ausdruck wie a ??= b ??= c als a ??= (b ??= c) ausgewertet wird.

Verwendung des Null-Koaleszenzoperators

Die Verwendungsmöglichkeiten der Null-Koaleszenzoperator Sind:

1: Bereitstellung von Standardwerten

Wenn Sie mit nullfähigen Typen arbeiten und der Wert null ist, können Sie Folgendes verwenden Null-Koaleszenzoperator um einen Standardwert bereitzustellen, anstatt eine Ausnahme auszulösen.

Verwenden des Systems;

öffentliches Klassenprogramm
{
Public static void Main ( )
{
int? nullableValue = null;
int value = nullableValue ?? 10 ;
Console.WriteLine ( „Der Wert ist:“ + Wert ) ;
}
}

Im obigen Beispiel definieren wir die Ganzzahl nullableValue Variable und geben Sie ihr den Wert Null. Der Null-Koaleszenzoperator wird dann verwendet, um der Wertvariablen einen Standardwert von 10 bereitzustellen, wenn nullableValue null ist. Als nächstes wird der Wert auf der Konsole angezeigt.

2: Vermeidung von Nullreferenzausnahmen

Nullwerte können bei der Arbeit mit anspruchsvollen Datenstrukturen wie Objekten und Arrays zu Nullreferenzausnahmen führen. Diese Ausnahmen können durch die Verwendung von vermieden werden Null-Koaleszenzoperator , das Standardwerte bereitstellt.

Verwenden des Systems;

öffentliche Klasse myClass
{
öffentlicher String-Name { erhalten; Satz ; }
öffentliche int-ID { erhalten; Satz ; }
}
öffentliches Klassenprogramm
{
Public static void Main ( )
{
myClass person = null;
string name = person?.Name ?? 'Unbekannt' ;
int Ausweis = Person?.ID ?? 0 ;
Console.WriteLine ( 'Name: ' + Name ) ;
Console.WriteLine ( 'AUSWEIS: ' + Ausweis ) ;
}
}

Name Und AUSWEIS sind Attribute der meine Klasse Klasse im obigen Code. Um sicher auf die zugreifen zu können Name Und AUSWEIS Eigenschaften des Personenobjekts und liefert Standardwerte, wenn sie null sind, setzt es eine Personenvariable auf null und verwendet dann den Null-Bedingungsoperator (?.) und den Null-Koaleszenzoperator (??). Anschließend wird die Konsole mit den Namens- und ID-Werten gedruckt.

3: Entfernen redundanter if-else-Bedingungen

Sie können auch den Null-Koaleszenzoperator verwenden, um Ihren Code prägnanter und lesbarer zu gestalten, indem Sie die Notwendigkeit einer Redundanz beseitigen if-else-Bedingungen .

Zum Beispiel:

Verwenden des Systems;

Namespace-Beispiel
{
Klasse myClass
{
statische Leere Main ( Zeichenfolge [ ] args )
{
int? nullableValue = null;
int-Wert;
Wenn ( nullableValue ! = null )
{
value = nullableValue.Value;
}
anders
{
Wert = 10 ;
}
Console.WriteLine ( „Der Wert ist:“ + Wert ) ;
}
}
}

Im obigen Code der Null-Koaleszenzoperator ?? wird verwendet, um den Wert von zuzuweisen nullableValue schätzen. Wenn nullableValue nicht null ist, hat der Wert denselben Wert wie nullableValue . Wenn nullableValue ist null, dann hat der Wert den Wert 10. Der ansonsten Eine Bedingung ist nicht mehr erforderlich und der Code ist jetzt kürzer und verständlicher.

Abschluss

Der Null-Koaleszenzoperator in C# ist eine leistungsstarke Funktion, die den Umgang von Entwicklern mit Nullwerten in ihren Projekten vereinfacht. Dieser Operator bietet eine kompakte, effiziente und flexible Syntax zum Zuweisen von Standardwerten zu Variablen, die möglicherweise Null sind. Durch die Verwendung der Null-Koaleszenzoperator können Entwickler besser lesbaren, wartbaren und effizienteren Code schreiben und so Zeit und Aufwand im Entwicklungsprozess sparen.