Si quieres hacer tu código más resiliente, que es una característica del software muy extendida hoy en día entonces deberás aprender sobre el operador de condición nula que provee C# desde su versión 6.
El operador es un simple signo de interrogación ?
Y lo usamos añadiéndolo después de un objeto en el que queremos validar su valor.
En caso sea nulo, retornará Nulo (de forma controlada) en vez de lanzar la típica excepción NullReferenceException.
He creado un código de ejemplo en el cual podrás ver a este operador ? en acción!
Por si no lo sabías. Un código es resiliente cuando tiene la capacidad de mantener su funcionalidad y rendimeinto incluso cuando se enfrenta a situaciones inesperadas o condiciones adversas, como puede ser hacer referencia a un valor nulo.
Vamos al código
namespace ConsoleApp1
{
public class Program
{
public static void Main(string[] args)
{
PersonaRepository personaRepository = new PersonaRepository();
Persona persona = personaRepository.Get(2);
//Sin null conditional operator
if (persona is not null)
{
persona.Matricular();
}
//Con conditional operator
persona?.Matricular();
string config = ConfigurationRepository.GetConfiguration();
//Sin null conditional operator
Console.WriteLine($"La configuración es {config.ToLower()}");
//Con null conditional operator
Console.WriteLine($"La configuración es {config?.ToLower()}");
//Sin null conditional operator
Console.WriteLine($"La longitud del texto es {config.Length}");
//Con null conditional operator
Console.WriteLine($"La longitud del texto es {config?.Length}");
}
}
public class PersonaRepository
{
private readonly List<Persona> personas = new();
public PersonaRepository()
{
personas.Add(new Persona { Id = 1, Nombre = "Gerson" });
}
public Persona Get(int id)
{
return personas.FirstOrDefault(x => x.Id == id);
}
}
public class ConfigurationRepository
{
public static string GetConfiguration()
{
return null; //retorno null a propósito para probar la aplicación
}
}
public class Persona
{
public int Id { get; set; }
public string Nombre { get; set; }
public void Matricular()
{
Console.WriteLine($"El alumno {Nombre} ha sido matriculado.");
}
}
}
Explicando el código
Ahora te toca a ti genio, copia el código y pégalo en tu IDE y pruébalo por ti mismo.
Si esta entrada te ha encantado, a qué esperas crack? Compártela 😎💙
Créditos de foto principal: Foto de Kier in Sight Archives en Unsplash