Qualité de code — Nullable, Analyseurs, StyleCop
Notions théoriques
Nullable Reference Types (C# 8+)
Avant C# 8, toute variable de type référence (string, classe...) pouvait implicitement valoir null, sans que le compilateur ne vous avertisse. Le résultat : des NullReferenceException en production.
Depuis C# 8, les Nullable Reference Types permettent de distinguer :
string: ne peut jamais être null (le compilateur le garantit)string?: peut être null (vous devez le vérifier explicitement)
Pour activer cette fonctionnalité dans tout le projet :
<!-- MonProjet.csproj -->
<PropertyGroup>
<Nullable>enable</Nullable>
</PropertyGroup>
Ou fichier par fichier :
#nullable enable
public class Personnage
{
public string Nom { get; set; } = ""; // jamais null
public string? Description { get; set; } // peut être null
}