¿Qué significan dos signos de interrogación seguidos en C#?
¡Hola! Acabo de empezar a aprender C# y me encontré con una sintaxis extraña. En código de otra persona vi esta construcción:
```csharp
string name = userName ?? "Invitado";
```
¿Qué hacen aquí esos dos signos de interrogación `??`? Entiendo que `userName` es alguna variable, pero ¿por qué poner dos signos de interrogación y luego un string? ¿Es algún tipo de comprobación? Intenté buscar en Google, pero principalmente encuentro explicaciones sobre el operador ternario `? :`, y esto se ve diferente.
También noté que a veces escriben `??=` — ¿eso también está relacionado? Por ejemplo, en este código:
```csharp
list ??= new List();
```
¿Puedes explicar en palabras simples cómo funciona y para qué sirve? Preferiblemente con ejemplos, porque soy visual. ¡Gracias de antemano!
Operador de coalescencia nula (??) en C#
Dos signos de interrogación ?? en C# son el null-coalescing operator (operador de coalescencia nula). Se usa para verificar si un valor es null y, si lo es,