Avatar ·

O que significam dois pontos de interrogação seguidos em C#?

Olá! Comecei a aprender C# e encontrei uma sintaxe estranha. No código de outra pessoa, vi esta construção: ```csharp string name = userName ?? "Convidado"; ``` O que esses dois pontos de interrogação `??` fazem aqui? Entendo que `userName` é alguma variável, mas por que colocar dois pontos de interrogação e depois uma string? É algum tipo de verificação? Tentei pesquisar, mas encontro principalmente explicações sobre o operador ternário `? :`, e isso parece diferente. Também notei que às vezes escrevem `??=` — isso também está relacionado? Por exemplo, neste código: ```csharp list ??= new List(); ``` Você pode explicar em palavras simples como isso funciona e para que serve? De preferência com exemplos, porque sou visual. Obrigado desde já!

Operador de coalescência nula (??) em C#

Dois pontos de interrogação ?? em C# são o null-coalescing operator (operador de coalescência nula). Ele é usado para verificar se um valor é null e, se for,