</>
Plan du cours — 13/46

Nullable reference types

Débutant

Avec <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);
}