Bonjour,
Que veux dire la syntaxe :?
Code : Sélectionner tout - Visualiser dans une fenêtre à part public decimal? Montant {get; set;}
Surtout le ?
Merci d'avance,
Clm
Bonjour,
Que veux dire la syntaxe :?
Code : Sélectionner tout - Visualiser dans une fenêtre à part public decimal? Montant {get; set;}
Surtout le ?
Merci d'avance,
Clm
Il s'agit d'une déclaration de propriété (Montant) dont le type est un decimal nullable.
Le "?" derrière un type permet d'indiquer que ce type est nullable, accepte la valeur nulle.
Bonjour,
Et c'est une auto-propriété, c'est-à-dire qu'il n'est pas nécessaire de déclarer un membre stockant la valeur de la propriété.
la précision d'ostenhard est importante
Depuis la version 3.0 du framework, tu n'as plus besoin de déclarer de variables privées pour les déclarations de propriétés "simples" (lire, qui ne contiennent pas de logique métier).
Un peu de lecture ici.
J'ajouterai que la syntaxe decimal? est en fait un raccourci pour Nullable<decimal>.
Pour tester si la propriété est nulle, tu peux faire comme avec un type référence :
Ou encore utiliser la propriété HasValue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if (Montant != null) { ... }
Et pour obtenir la valeur non nullable, on utilise la propriété Value :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if (Montant.HasValue) { ... }
Code : Sélectionner tout - Visualiser dans une fenêtre à part decimal m = Montant.Value; // attention, exception si Montant.HasValue == false
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Petite correction : ce n'est pas la 3.0 du framework, mais c'est depuis la version 3.0 de C#, qui correspond à la verson 3.5 du framework (la 3.0 du framework fonctionne avec la version 2.0 de C#, et est utilisable avec VS 2005, ce qui n'est pas le cas de C# 3.0 et ne permet pas l'usage des propriétes auto, puisque c'est une question de compilateur, pas de framework).
Partager