¿Qué significan dos signos de interrogación en C#? (Operador ??)
¡Hola, colegas! Recientemente empecé a estudiar C# y me topé con una construcción extraña en código de otra persona. Allí estaba escrito algo como:
```csharp
string name = userName ?? "Invitado";
```
Entiendo que `userName` es una variable y `"Invitado"` es un string. Pero, ¿qué hace este doble signo de interrogación (`??`)? ¿Es algún operador de comparación? ¿O una abreviatura para `if-else`? Intenté buscar en internet, pero solo encontré explicaciones generales en inglés que no entendí del todo.
¿Pueden explicarlo en palabras simples en español, preferiblemente con ejemplos? ¿Cuándo se debe usar esto? ¿Y hay diferencia entre `??` y el operador ternario `?:`? ¡Gracias de antemano! Estoy escribiendo una aplicación de consola simple donde necesito obtener el nombre del usuario, y si no se proporciona (null), mostrar "Invitado". Aquí está mi código actual, que parece demasiado verboso:
```csharp
string userName = Console.ReadLine();
string name;
if (userName != null)
{
name = userName;
}
else
{
name = "Invitado";
}
Cons