Sie sind hier: Startseite | Wissen
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

C# 6.0
Exception
Compiler
Property
Indexer
Handle

Beratung & Support:

Schulungen zu diesem Thema:

 Anfrage für eine individuelle Schulung zum Thema Null-Conditional Operator  Gesamter Schulungsthemenkatalog