Nullable reference types
DébutantAvec <Nullable>enable</Nullable> dans le .csproj, le compilateur distingue les références qui peuvent être null de celles qui ne le peuvent pas, et avertit en cas de risque.
string nomObligatoire = "Alice"; // ne peut jamais être null
string? nomOptionnel = null; // peut être null, le "?" le documente
// Le compilateur avertit ici : nomOptionnel pourrait être null
Console.WriteLine(nomOptionnel.Length);
// Vérification explicite
if (nomOptionnel is not null)
{
Console.WriteLine(nomOptionnel.Length);
}
// Idiome courant en début de méthode : valide et lève si null
void Traiter(string? valeur)
{
ArgumentNullException.ThrowIfNull(valeur);
// à partir d'ici, le compilateur sait que "valeur" n'est plus null
Console.WriteLine(valeur.Length);
}