Validación de nulos con el operador ?? en C#

veronicaguamann

Verónica Guamán

Posted on August 29, 2023

Validación de nulos con el operador ?? en C#

En nuestro día a día como programadores, nos encontramos de esas situaciones en las que tenemos que validar si una variable es nula y, si lo es, asignarle un valor por defecto.

En el mundo de la programación cada lenguaje tiene sus operadores y símbolos que hacen que esta tarea sea más fácil y eficiente.

En C# tenemos al operador ??(Coalescencia nula) uno de los varios operadores que tiene este lenguaje de programación, este operador se encuentra dentro de los operadores de comparación simplificados.

En este artículo aprenderemos que es, como utilizar este operador y como puede ayudarnos a simplificar nuestro código en los proyectos en los que trabajemos. Vamos a ello.

¿Qué es el operador de coalescencia nula (??)?
Veamos la definición técnica:
El operador de coalescencia nula (??) es un operador de C# que permite asignar un valor predeterminado a una variable si su valor actual es nulo. Proporciona una forma concisa de manejar valores nulos sin tener que escribir varias líneas de código condicional.

Y ahora la definición menos técnica:
El operador ?? valida si un valor es nulo y nos ayuda a asignarle un valor en caso de serlo, vamos a entenderlo mejor con un ejemplo.

CASO DE USO
Tenemos una aplicación donde los usuarios pueden ingresar su nombre. Si no ingresan nada (nulo) vamos a mostrar la palabra "Invitado".

Código tradicional

string nombreUsuario = ObtenerNombreUsuario();

string mensaje;

if (nombreUsuario != null)
{
    mensaje = nombreUsuario;
}
else
{
    mensaje = "Invitado";
}
Enter fullscreen mode Exit fullscreen mode

Como ves esto nos lleva a una serie de comprobaciones y asignaciones.

Ahora veámoslo con el operador ??

string nombreUsuario = ObtenerNombreUsuario();
string mensaje = nombreUsuario ?? "Invitado";
Enter fullscreen mode Exit fullscreen mode

¿Un cambio radical verdad? En lugar de varios bloques if-else para manejar valores nulos, ahora solo necesitamos una línea.
Si nombreUsuario no es nulo, ¡tendrás su nombre! Y si es nulo, no hay problema, "Invitado" es tu plan B.

Veamos unos ejemplos más:

Aquí tenemos una variable del precio de un producto, en lugar de que recibir un valor vacío vamos a asignarle un valor por defecto.

double precioProducto = ObtenerPrecioProducto();
double precioMostrar = precioProducto ?? 0.00;
Enter fullscreen mode Exit fullscreen mode

Escapando de las Excepciones
También debes haber enfrentado el desafío de las excepciones cuando intentas acceder a un objeto nulo. Aquí nuevamente, el operador ?? viene a tu rescate:

string mensajeBienvenida = ObtenerMensajeBienvenida();
string mensajeMostrar = mensajeBienvenida ?? "¡Bienvenido a bordo!";
Enter fullscreen mode Exit fullscreen mode

O Enviar una excepción personalizada.

Usuario usuario = ObtenerUsuario() ?? throw new NotFoundException("Usuario no encontrado");
Enter fullscreen mode Exit fullscreen mode

Ahora ya sabes como validar valores nulos con nuestro super operador ??, ya no tienes que perder tiempo en verificaciones tediosas ni enfrentarte a excepciones inesperadas.

Nos vemos en Twitter

¡Hasta la próxima línea de código y que tus códigos siempre estén libres de nulos! 🚀

💖 💪 🙅 🚩
veronicaguamann
Verónica Guamán

Posted on August 29, 2023

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related