Quiero convertir un DateTime ( DateTime?
) anulable en a DateTime
, pero recibo un error:
No se puede convertir implícitamente el tipo 'System.DateTime?' a 'System.DateTime'. Existe una conversión explícita (¿te falta un yeso?)
He intentado lo siguiente:
DateTime UpdatedTime = (DateTime)_objHotelPackageOrder.UpdatedDate == null
? DateTime.Now : _objHotelPackageOrder.UpdatedDate;
memDateLogin = m.memDateLogin ?? DateTime.MinValue
MS ya creó un método para esto, por lo que no tiene que usar el operador de fusión nula. No hay diferencia en la funcionalidad, pero es más fácil para los no expertos obtener lo que está sucediendo de un vistazo.
fuente
Prueba esto
fuente
Puedes usar un elenco simple:
Como dijo Leandro Tupone, debe verificar si la var es nula antes
fuente
Debe llamar a la propiedad Value del DateTime anulable. Esto devolverá un DateTime.
Suponiendo que
UpdatedDate
es asíDateTime?
, entonces esto debería funcionar:Para que el código sea un poco más fácil de leer, puede usar la propiedad HasValue en lugar de la
null
comprobación:Esto se puede hacer aún más conciso:
fuente
¿Qué tal lo siguiente:
fuente
Aquí hay un fragmento que utilicé dentro de un presentador que llena una vista con una fecha / hora anulable
fuente
También puede probar las propiedades Nullable (T) :
fuente
Considere usar lo siguiente, que es mucho mejor que la respuesta aceptada
fuente
Prueba esto:
fuente
fuente