Es ist ein Null-Propagationsoperator / Null-Bedingungsoperator? eine neue vorgeschlagene Funktion in C # 6.0
x?.y?.z
meint
- Überprüfen Sie zuerst, ob
x
nicht null ist, und überprüfen Sie y
andernfalls , ob null zurückgegeben wird.
- Zweitens, wenn x nicht null ist, überprüfen Sie
y
, ob es nicht null ist, und geben Sie z
andernfalls null zurück.
Der endgültige Rückgabewert ist z
oder null
.
Ohne diesen Operator, wenn er x
null ist, x.y
würde der Zugriff eine Nullreferenzausnahme auslösen. Der nullbedingte Operator hilft dabei, eine explizite Überprüfung auf null zu vermeiden.
Auf diese Weise können Sie eine Nullreferenzausnahme vermeiden.
Siehe: Machen Sie sich mit den bevorstehenden Sprachfunktionen in C # vertraut
8 - Nullbedingte Operatoren
Manchmal neigt Code dazu, bei der Nullprüfung etwas zu ertrinken. Mit dem nullbedingten Operator können Sie nur dann auf Elemente und Elemente zugreifen, wenn der Empfänger nicht null ist. Andernfalls erhalten Sie ein Null-Ergebnis:
int? length = customers?.Length;