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,