nullable DateTime ( DateTime?
) 을로 변환하고 DateTime
싶지만 오류가 발생합니다.
‘System.DateTime’형식을 암시 적으로 변환 할 수 없습니까? ‘System.DateTime’으로 명시적인 전환이 존재합니다 (캐스트가 누락 되었습니까?)
나는 다음을 시도했다.
DateTime UpdatedTime = (DateTime)_objHotelPackageOrder.UpdatedDate == null
? DateTime.Now : _objHotelPackageOrder.UpdatedDate;
답변
정확하게이 목적을 위해 설계된 null-coalescing 연산자 를 사용하려고합니다 .
그것을 사용하면이 코드로 끝납니다.
DateTime UpdatedTime = _objHotelPackageOrder.UpdatedDate ?? DateTime.Now;
답변
MS는 이미 이에 대한 방법을 만들었으므로 null 병합 연산자를 사용할 필요가 없습니다. 기능상의 차이는 없지만 전문가가 아닌 사람이 한 눈에 일어나기 쉬운 작업을 쉽게 수행 할 수 있습니다.
DateTime updatedTime = _objHotelPackageOrder.UpdatedDate.GetValueOrDefault(DateTime.Now);
답변
이 시도
DateTime UpdatedTime = _objHotelPackageOrder.UpdatedDate ?? DateTime.Now;
답변
간단한 캐스트를 사용할 수 있습니다.
DateTime dtValue = (DateTime) dtNullAbleSource;
Leandro Tupone이 말했듯이 var가 null인지 확인해야합니다.
답변
nullable 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;
답변
다음은 어떻습니까 :
DateTime UpdatedTime = _objHotelPackageOrder.UpdatedDate.HasValue ? _objHotelPackageOrder.UpdatedDate.value : DateTime.Now;
답변
다음은 발표자에서 Nullable Date / Time으로 뷰를 채우는 데 사용한 스 니펫입니다.
memDateLogin = m.memDateLogin ?? DateTime.MinValue