Desde C# 8, el lenguaje introdujo el análisis de nulabilidad (nullable reference types), una herramienta poderosa para ayudarte a detectar posibles null en tiempo de compilación. Esta funcionalidad se activa o desactiva con la propiedad <Nullable> en el archivo .csproj.
Cuando está activado, el compilador trata los tipos de referencia como no anulables por defecto, a menos que explícitamente los marques con ?.
Veamos un ejemplo:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
Y en el projecto:
string name = null; // Warning: posible asignación nula
string? nickname = null; // Permitido
con Nullable deshabilitado:
string name = null; // No hay advertencias, aunque puede fallar en runtime
Activar Nullable te permite:
- Recibir advertencias si estás usando variables que podrían ser null.
- Hacer que tus APIs sean más expresivas (string? vs string).
- Reducir errores en tiempo de ejecución por NullReferenceException.
- Trabajar mejor con herramientas de análisis estático.
Usar <Nullable>enable</Nullable> en tus proyectos de C# modernos es una excelente práctica. Aumenta la robustez del código y te da más control sobre los errores relacionados con null, una de las fuentes más comunes de fallos en producción.