Bonjour,
Que veux dire la syntaxe :? :cfou:Code:public decimal? Montant {get; set;}
Surtout le ?
Merci d'avance,
Clm
Version imprimable
Bonjour,
Que veux dire la syntaxe :? :cfou:Code: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é.
Merci les gars !:ccool:
la précision d'ostenhard est importante :ccool:
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:
1
2
3
4 if (Montant != null) { ... }
Et pour obtenir la valeur non nullable, on utilise la propriété Value :Code:
1
2
3
4 if (Montant.HasValue) { ... }
Code:decimal m = Montant.Value; // attention, exception si Montant.HasValue == false
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).