C# Language Null fall-through et chaining


Exemple

L'opérande de gauche doit être nul, tandis que l'opérande de droite peut l'être ou non. Le résultat sera saisi en conséquence.

Non nullable

int? a = null;
int b = 3;
var output = a ?? b;
var type = output.GetType();  

Console.WriteLine($"Output Type :{type}");
Console.WriteLine($"Output value :{output}");

Sortie:

Type: System.Int32
valeur: 3

Voir la démo

Nullable

int? a = null;
int? b = null;
var output = a ?? b;

output sera de type int? et égal à b ou null .

Coalescence Multiple

La coalescence peut également être effectuée en chaînes:

int? a = null;
int? b = null;
int c = 3;
var output = a ?? b ?? c;

var type = output.GetType();    
Console.WriteLine($"Type :{type}");
Console.WriteLine($"value :{output}");

Sortie:

Type: System.Int32
valeur: 3

Voir la démo

Chaînage conditionnel nul

L'opérateur de coalescence nulle peut être utilisé en parallèle avec l' opérateur de propagation nul pour fournir un accès plus sûr aux propriétés des objets.

object o = null;
var output = o?.ToString() ?? "Default Value";

Sortie:

Type: System.String
valeur: valeur par défaut

Voir la démo