Qu'est-ce que l'opérateur de coalescence nulle ?

L’opérateur ?? en C# est utilisé pour fournir une valeur par défaut lorsque l’opérande gauche est null. Cet opérateur est appelé l’opérateur de coalescence nulle.

Voici un exemple simple :

string nomUtilisateur = null;
string nomAffichage = nomUtilisateur ?? "Utilisateur Anonyme";

Console.WriteLine(nomAffichage);
Pourquoi coalescence ?

Le terme coalescence vient du latin coalescere, qui signifie « se développer ensemble » ou « fusionner ». En programmation, cela se traduit par l’idée de « fusionner » deux valeurs pour en obtenir une seule, en fonction de la présence ou non de valeur nulle.

Dans cet exemple :

  • Si nomUtilisateur est null, alors nomAffichage prendra la valeur "Utilisateur Anonyme".
  • Si nomUtilisateur avait une valeur (par exemple "John Doe"), alors nomAffichage aurait pris cette valeur.

Ainsi, si vous exécutez ce code, la sortie sera :

Utilisateur Anonyme

L’opérateur ?? est particulièrement utile pour éviter des vérifications explicites de null et pour fournir des valeurs par défaut plus facilement.

Plus d’information:

Petite précision sémantique.
C# 8 (.NET Core uniquement) apporte un nouvel opérateur d’affectation de coalescence nulle : ??= qui fonctionne comme d’autres opérateurs d’affectation (+=, &=, …).

// l'expression suivante :
if (str is null) 
    str = "foo";
// peut s'écrire :
str ??= "foo";

Dés lors Microsoft parle « d’opérateur fusion nulle » pour : ?? et « d’opérateur de coalescence nulle » pour ??= (voir ce sujet).

1 « J'aime »

Merci @gilecad ! N’hésites pas compléter/corriger le contenu comme tu l’as fait. :+1: