203 votes

Comment convertir DateTime ? en DateTime

Je veux convertir datetime nullable à . Mais je reçois le message d’erreur. J’ai fait comme ce qui suit :

Mais je reçois le message d’erreur :

344voto

chills42 Points 8260

Vous souhaitez utiliser l' opérateur de fusion null, qui est conçu pour exactement cela.

L’utiliser vous vous retrouvez avec ce code.

96voto

Josh Points 449

MS a déjà fait une méthode pour ce faire, ainsi vous ne devez utiliser l’opérateur coalescent null. Aucune différence dans les fonctionnalités, mais il n’est plus facile pour des non-spécialistes obtenir ce qui se passe en un clin de œil.

44voto

Valentin Vasilyev Points 6370

Essaye ça

 DateTime UpdatedTime = _objHotelPackageOrder.UpdatedDate ?? DateTime.Now;
 

25voto

adrianbanks Points 36858

Vous devez appeler la Valeur de la propriété de la nullable DateTime. Cela renvoie un DateTime.

En supposant que l' UpdatedDate est DateTime?, alors cela devrait fonctionner:

DateTime UpdatedTime = (DateTime)_objHotelPackageOrder.UpdatedDate == null ? DateTime.Now : _objHotelPackageOrder.UpdatedDate.Value;

Pour rendre le code un peu plus facile à lire, vous pouvez utiliser le HasValue de la propriété à la place de l' null vérifier:

DateTime UpdatedTime = _objHotelPackageOrder.UpdatedDate.HasValue
                          ? _objHotelPackageOrder.UpdatedDate.Value
                          : DateTime.Now;

Ce peut être rendue encore plus concise:

DateTime UpdatedTime = _objHotelPackageOrder.UpdatedDate ?? DateTime.Now;

6voto

Simon Wilson Points 2801

Que diriez-vous ce qui suit :

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