Corriger l'erreur "Non-nullable property 'From' must contain a non-null value when exiting constructor. Consider declaring the property as nullable."

Le langage C# est un des langages les plus populaires. Il a été mis au point par la société Microsoft et est intégré dans le framework .NET. On peut créer des logiciels de bureaux pour les systèmes d'exploitation de la famille Windows. Au fur et à mesure des nouveaux frameworks, les possibilités du langage se sont élargies. Avec Xamarin, on peut créer en C# des applications pour les systèmes d'exploitation pour smartphones iOS et Android. Les arrivées de Mono puis .NET Core ont élargi la prise en charge des ordinateurs de bureau aux systèmes d'exploitation macOS et Linux. C'est un langage fortement typé, et c'est ce contrôle poussé des types qui aboutit à l'affichage du message d'avertissement "Non-nullable property 'From' must contain a non-null value when exiting constructor. Consider declaring the property as nullable.".

Par défaut, une variable ne peut pas être nulle dans le langage C#, quel que soit le type que vous utilisez. Vous devez impérativement le préciser si vous souhaitez pouvoir utiliser "null", ou bien définir une valeur, sinon le message d'erreur va s'afficher.

public class MaClasse
{
    // Vous aurez ici un message d'avertissement car cette propriété est nulle alors qu'elle ne doit pas l'être
    public string propriete { get; set; }
}

Si vous souhaitez que la variable puisse être nulle, vous devez ajouter l'opérateur "?" à côté du type de la variable. Le runtime autorisera alors la variable à être nulle.

public class MaClasse
{
    // Pas d'erreur car la variable a le droit d'être nulle
    public string? propriete { get; set; }
}

Si vous ne souhaitez pas gérer les valeurs nulles dans votre projet, il est possible de paramétrer l'interpréteur pour qu'il ignore ces erreurs. Cela peut cependant provoquer plus de risques d'erreur, les valeurs nulles n'étant pas acceptées dans certaines méthodes. Vous devrez donc vous-même effectuer des tests. Supprimez la ligne suivante dans le fichier "csproj" de votre projet, ou remplacez la valeur "enable" par "disable" pour que les valeurs nulles soient autorisées avec tous les types.

# Valeurs nulles interdites
<Nullable>enable</Nullable>
# Valeurs nulles autorisées
<Nullable>disable</Nullable>