Salut tout le monde,
Quel est la différence entre le type DateTime et le type DateTime ?
Merci d'avance.
Cordialement
Version imprimable
Salut tout le monde,
Quel est la différence entre le type DateTime et le type DateTime ?
Merci d'avance.
Cordialement
euh aucune :koi:
doit y avoir un problème avec la question
Arf j'aurais du mettre des cotes
La différence entre un "DateTime" et un "Datetime?" ?
En fait j'utilise un DatePicker, et la property SelectedDate est de type "DateTime?" et non "DateTime".
Et je comprends pas la différence.
que DateTime? peut etre mis a null
DateTime est une structure et non une classe, par défaut elle ne peut valoir null
Donc comme pour bool,int,double,... tu as sa version nullable bool?,int?,double?...
Code:
1
2 DateTime maDate =null; // n'est pas valide DateTime? maDate = null; // est valide
Ok ça marche je te remercie pour ton aide.
DateTime? est un raccourci pour Nullable<DateTime>. La structure Nullable<T> permet de représenter l'absence de valeur pour une variable de type valeur (struct)
Pour tester si un DateTime? a une valeur, tu peux tester s'il est égal à null, ou vérifier sa propriété HasValue :
Pour accéder à la valeur, on passe par la propriété Value :Code:
1
2
3
4
5 if (datePicker.SelectedDate != null) ... // équivalent à if (datePicker.SelectedDate.HasValue)
(attention, la propriété Value lève une exception si HasValue est false)Code:DateTime selectedDate = datePicker.SelectedDate.Value;
Enfin, l'opérateur ?? permet de récupérer la valeur, ou une valeur par défaut s'il n'y a pas de valeur :
Code:
1
2// Renvoie DateTime.Now si datePicker.SelectedDate est null DateTime selectedDate = datePicker.SelectedDate ?? DateTime.Now;
Merci pour l'explication détaillée tomlev