Il est Opérateur à propagation nulle / Opérateur à condition nulle ? une nouvelle fonctionnalité proposée dans C# 6.0
x?.y?.z
signifie
- Tout d'abord, vérifiez si
x
n'est pas nulle, alors vérifier y
sinon, retournez null,
- ensuite, si x n'est pas nul, vérifier
y
si elle n'est pas nulle, elle retourne z
sinon, retournez null.
La valeur de retour finale sera z
ou null
.
Sans cet opérateur, si x
est nulle, alors l'accès à x.y
entraînerait une exception de référence nulle, l'opérateur Null-Conditional permet d'éviter de vérifier explicitement la présence de null.
C'est un moyen d'éviter l'exception de référence nulle.
Voir : Se faire une idée des prochaines fonctionnalités du langage C#
8 - Opérateurs conditionnels nuls
Parfois, le code a tendance à se noyer un peu dans le contrôle des nullités. Le site opérateur conditionnel nul vous permet d'accéder aux membres et aux éléments uniquement lorsque le récepteur n'est pas nul, fournissant un résultat nul dans le cas contraire :
int? length = customers?.Length; // null if customers is null