Sie sind hier: Lexikon/Glossar
Werbung

Was ist Null-Conditional Operator ?

Der Null-Conditional Operator gehört zu den syntakischen Zuckerstücken in C# 6.0 und Visual Basic 14.

Der bisher vorhandene Punkt-Operator (.) liefert einen Laufzeitfehler (NullReferenceException), wenn der Ausdruck vor dem Punkt den Wert null hat. Der neue Operator ?. liefert in diesem Fall null. Microsoft nennt den Operator Null-conditional Operator oder Null-propagating Operator.

string kundenname = repository?.GetKunde()?.Name;

Mit dem Null-Conditional Operator kann man z.B. auch das Auslösen von Ereignisse kürzer schreiben. Allerdings ist bei der neuen Variante explizit In-voke() aufzurufen.

Alt:
var handler = this.PropertyChanged
if (handler!= null) handler(this, new PropertyChangedE-ventArgs(propertyName));

Neu:
PropertyChanged?.Invoke(this, new PropertyChangedE-ventArgs(propertyName));
Der C# 6.0-Compiler macht aus dem neuen Ausdruck:
PropertyChangedEventHandler expr_28 = this.PropertyChanged;
if (expr_28 != null)
{
expr_28(this, new PropertyChangedEventArgs("MitarbeiterAnzahl"));
}

Der neue Operator kann auch beim Zugriff auf Indexer eingesetzt werden. Allerdings fängt der Operator nur den Fall ab, dass die Listenvariable den Wert null hat. Es gibt weiterhin einen Laufzeitfehler (ArgumentOutOfRangeException), falls es das angesprochene Element in der Liste nicht gibt.

string kundenname = kundenListe?[123]?.GanzerName;

Querverweise zu anderen Begriffen im Lexikon

Exception
Property
Compiler
Indexer
Handle
Liste
CSharp 6.0 (C# 6.0)

Beratung & Support

Schulungen

  Anfrage für eine individuelle Schulung zum Thema NULL-CONDITIONAL OPERATOR   Gesamter Schulungsthemenkatalog

Fachbücher

  Alle unsere aktuellen Fachbücher   E-Book-Abo für ab 99 Euro im Jahr