51 votes

Créer des types non nuls en C#

Comment créer des types de valeurs non nulles comme int, bool, etc. en C# ?

58voto

Miguel Angelo Points 12471

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.

26voto

brian Points 447

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

14voto

dtb Points 104373

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X