# Qu'est-ce que l'opérateur de coalescence nulle ? **Category:** [DotNET](https://dessein-tech.com/c/developpement-programmation-dao-cao-dotnet-csharp/32) **Created:** 2024-08-25 02:38 UTC **Views:** 74 **Replies:** 2 **URL:** https://dessein-tech.com/t/quest-ce-que-loperateur-de-coalescence-nulle/635 --- ## Post #1 by @Patrick 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 : ```csharp string nomUtilisateur = null; string nomAffichage = nomUtilisateur ?? "Utilisateur Anonyme"; Console.WriteLine(nomAffichage); ``` [details="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. [/details] 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. ![image|690x234](upload://m2DrZoHVFuF25h867susOFEEATn.png) 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: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing --- ## Post #2 by @gilecad 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](https://learn.microsoft.com/fr-fr/dotnet/csharp/language-reference/operators/null-coalescing-operator)). --- ## Post #3 by @Patrick Merci @gilecad ! N’hésites pas compléter/corriger le contenu comme tu l'as fait. :+1: --- **Canonical:** https://dessein-tech.com/t/quest-ce-que-loperateur-de-coalescence-nulle/635 **Original content:** https://dessein-tech.com/t/quest-ce-que-loperateur-de-coalescence-nulle/635