This article is currently in the process of being translated into Spanish (~98% done).
The NULL coalescing operator
El operador ?? es llamado el "operador incorporador de nulos" por que le permite verificar por un valor NULL y asignar un valor de respaldo en una línea de código. Esto puede parecer trivial de hacer sin este operador, pero considere el siguiente ejemplo:
string userSuppliedName = null;
if (userSuppliedName == null)
Console.WriteLine("Hello, Anonymous!");
else
Console.WriteLine("Hello," + userSuppliedName);
Debe pensar en la variable userSuppliedName como algo que proviene del usuario, por ejemplo, desde un dialogo o un archivo de datos - algo que puede resultar en un valor NULL. Podemos lidiar con esto al verificar el valor antes de usarlo, en este caso para desplegar el nombre al usuario.
En el ejemplo de arriba, usamos la aproximación clásica if-else, pero con el operador incorporador de nulos, podemos hacerlo mucho más corto, en una sola línea:
Console.WriteLine("Hello, " + (userSuppliedName ?? "Anonymous"));
En una sola declaración, le pedimos al compilador usar la variable userSuppliedName si tiene un valor - si no, nosotros proporcionamos un valor de respaldo, en este caso el nombre "Anonymous". ¡Corto y simple!
Resumen
Como con todo el "dulce sintáctico", como con el operador incorporador de nulos, siempre hay un compromiso entre mantener el código corto y legible. Algunos encuentran que estos operadores hacen el código más difícil de leer y navegar, mientras que otros aman lo corto y simple que es. En el fondo, ¡Todo depende de usted!