Chcę przekonwertować DateTime ( DateTime?
) dopuszczającą wartość null na a DateTime
, ale pojawia się błąd:
Nie można niejawnie przekonwertować typu „System.DateTime”? do „System.DateTime”. Istnieje jawna konwersja (brakuje Ci obsady?)
Próbowałem wykonać następujące czynności:
DateTime UpdatedTime = (DateTime)_objHotelPackageOrder.UpdatedDate == null
? DateTime.Now : _objHotelPackageOrder.UpdatedDate;
memDateLogin = m.memDateLogin ?? DateTime.MinValue
Firma MS już stworzyła metodę do tego, więc nie musisz używać operatora koalescencji zerowej. Nie ma różnicy w funkcjonalności, ale osobom nie będącym ekspertami łatwiej jest zorientować się, co się dzieje.
źródło
Spróbuj tego
źródło
Możesz użyć prostej obsady:
Jak powiedział Leandro Tupone, musisz wcześniej sprawdzić, czy var jest zerowy
źródło
Musisz wywołać właściwość Value DateTime dopuszczającej wartość null. To zwróci DateTime.
Zakładając, że tak
UpdatedDate
jestDateTime?
, to powinno działać:Aby nieco ułatwić czytanie kodu, zamiast
null
sprawdzania można użyć właściwości HasValue :Można to zrobić jeszcze bardziej zwięźle:
źródło
A co z następującymi:
źródło
Oto fragment, którego użyłem w Prezenterze, wypełniając widok datą / godziną dopuszczającą wartość zerową
źródło
Możesz także wypróbować właściwości Nullable (T) :
źródło
Rozważ skorzystanie z poniższego, które jest znacznie lepsze niż zaakceptowana odpowiedź
źródło
Spróbuj tego:
źródło
źródło