Nullables y Operador ?. en C#
Los tipos anulables (nullable) en C# permiten a tipos de valor como int o DateTime
tener un valor nulo (null).
Esto es esencial para modelar datos opcionales o provenientes de bases de datos.
El operador de acceso condicional ?. permite acceder de forma segura a miembros evitando
excepciones de referencia nula.
Declarar tipos anulables
Puedes declarar un tipo de valor como anulable usando ? después del tipo.
int? edad = null;
if (edad.HasValue) {
Console.WriteLine($"Edad: {edad.Value}");
} else {
Console.WriteLine("Edad no especificada.");
}
Esto permite representar la ausencia de valor para tipos que normalmente no aceptan null.
Operador ?? (coalescencia nula)
Puedes asignar un valor por defecto usando ??.
int edadReal = edad ?? 18;
Console.WriteLine($"Edad asignada: {edadReal}");
Si edad es null, se usa 18.
Uso del operador ?. (acceso condicional)
El operador ?. permite acceder de forma segura a propiedades o métodos evitando
NullReferenceException.
Persona persona = null;
Console.WriteLine(persona?.Nombre ?? "Sin nombre");
Si persona es null, la expresión devuelve null en vez de fallar.
Encadenamiento seguro
Puedes encadenar varios accesos de forma segura.
Console.WriteLine(persona?.Direccion?.Ciudad ?? "Ciudad desconocida");
Evita excepciones si cualquiera de los miembros intermedios es null.
Buenas Prácticas
Usa tipos anulables para modelar datos opcionales de forma clara.
Emplea ?. y ?? para evitar errores de referencia nula.
Valida entradas y salidas de APIs para mayor seguridad.
Mantén tu código legible evitando encadenamientos excesivos.