我想转换一个可空的DateTime (DateTime?)到一个DateTime,但我得到一个错误:
不能隐式转换类型` System.DateTime?”
“System.DateTime”。存在显式转换(是否缺少
演员?)
我尝试了以下几点:
DateTime UpdatedTime = (DateTime)_objHotelPackageOrder.UpdatedDate == null
? DateTime.Now : _objHotelPackageOrder.UpdatedDate;
您需要调用可空DateTime的Value属性。这将返回一个DateTime。
假设UpdatedDate是DateTime?,那么这个应该可以工作:
DateTime UpdatedTime = (DateTime)_objHotelPackageOrder.UpdatedDate == null ? DateTime.Now : _objHotelPackageOrder.UpdatedDate.Value;
为了让代码更容易阅读,你可以使用HasValue属性来代替null检查:
DateTime UpdatedTime = _objHotelPackageOrder.UpdatedDate.HasValue
? _objHotelPackageOrder.UpdatedDate.Value
: DateTime.Now;
这可以变得更加简洁:
DateTime UpdatedTime = _objHotelPackageOrder.UpdatedDate ?? DateTime.Now;