Comment créer des types de valeurs non nulles comme int, bool, etc. en C# ?
Réponses
Trop de publicités?Oui, cela s'appelle struct
.
Les structures sont des types de valeurs, tout comme int
, bool
et autres.
Ils ont quelques règles/recommandations qui leur sont liées : (je pense que ce sont les plus importantes)
-
une structure est transmise et assignée par valeur, lorsqu'elle n'utilise pas les mots-clés ref ou out... cela signifie que tout ce que vous mettez dans une structure sera copié lors de l'assignation ou de la transmission à une méthode. C'est pourquoi vous ne devriez pas faire de grands struct.
-
vous ne pouvez pas définir un constructeur sans paramètre pour un struct en C#
-
Il est préférable que les structs soient immuables et n'aient pas de setters de propriétés. Vous pouvez avoir de gros problèmes en créant des structs mutables.
D'autres règles peuvent être trouvées dans les documents de Microsoft sur les structs.
Quant à types de référence non nulles ... c'est pas possible . Vous devez vérifier les nuls dans votre code, manuellement.
7 ans plus tard et c'est maintenant possible
- Installez .NET Core 3.0 qui inclut C# 8.
- Définissez la version de la langue sur 8.0 : 8.0 dans votre fichier .csproj.
- Ajoutez la propriété true (.à votre csproj)
Plus de détails sur son impact sur l'écriture du code et votre code existant ici :
https://praeclarum.org/2018/12/17/nullable-reference-types.html
Vous pouvez définir un struct :
Un type struct est un type de valeur qui est généralement utilisé pour encapsuler de petits groupes de variables liées, telles que les coordonnées d'un rectangle ou les caractéristiques d'un article dans un inventaire. L'exemple suivant montre une déclaration de struct simple :
public struct Book { public decimal price; public string title; public string author; }
Cependant, vous ne pouvez pas définir des alias comme int
para System.Int32
et doivent être référencés avec le nom complet MyNamespace.Book
(ou Book
con using MyNamespace;
) à votre structure.