Avatar ·

Que signifient deux points d'interrogation en C# ? (Opérateur ??)

Bonjour, collègues ! J'ai récemment commencé à apprendre C# et je suis tombé sur une construction étrange dans le code de quelqu'un d'autre. Il y avait quelque chose comme : ```csharp string name = userName ?? "Invité"; ``` Je comprends que `userName` est une variable et `"Invité"` une chaîne. Mais que fait ce double point d'interrogation (`??`) ? Est-ce un opérateur de comparaison ? Ou une abréviation pour `if-else` ? J'ai essayé de chercher sur Internet, mais je n'ai trouvé que des explications générales en anglais que je n'ai pas entièrement comprises. Pouvez-vous expliquer en termes simples en français, de préférence avec des exemples ? Quand faut-il l'utiliser ? Et y a-t-il une différence entre `??` et l'opérateur ternaire `?:` ? Merci d'avance ! J'écris une simple application console où je dois obtenir le nom d'utilisateur, et s'il n'est pas fourni (null), afficher "Invité". Voici mon code actuel, qui semble trop lourd : ```csharp string userName = Console.ReadLine(); string name; if (userName != null) { name = userName; } else { name = "Invité"; } ```