Avatar ·

O que significam dois pontos de interrogação em C#? (Operador ??)

Olá, colegas! Recentemente comecei a estudar C# e me deparei com uma construção estranha no código de outra pessoa. Estava escrito algo como: ```csharp string name = userName ?? "Convidado"; ``` Eu entendo que `userName` é uma variável e `"Convidado"` é uma string. Mas o que faz esse ponto de interrogação duplo (`??`)? É algum operador de comparação? Ou uma abreviação para `if-else`? Tentei pesquisar na internet, mas só encontrei explicações gerais em inglês que não entendi completamente. Vocês podem explicar em palavras simples, de preferência com exemplos? Quando devo usar isso? E há diferença entre `??` e o operador ternário `?:`? Desde já agradeço! Estou escrevendo uma aplicação console simples onde preciso obter o nome do usuário e, se não for fornecido (null), exibir "Convidado". Aqui está meu código atual, que parece muito verboso: ```csharp string userName = Console.ReadLine(); string name; if (userName != null) { name = userName; } else { name = "Convidado"; } Cons