Viac na
DateTime "null" hodnota
Veľa som hľadal, ale nenašiel som riešenie. Ako sa vysporiadať s DateTime, ktorý by mal obsahovať neinicializovanú hodnotu (ekvivalent null)? Mám triedu, ktorá môže mať nastavenú alebo nenastavenú hodnotu vlastnosti DateTime. Rozmýšľal som nad inicializáciou držiteľa vlastnosti na DateTime.MinValue, čo by sa potom dalo jednoducho kontrolovať. Hádam je to celkom bežná otázka, ako to robíte?
261
3
V prípade bežných DateTimes, ak ich vôbec neinicializujete, budú zodpovedať
DateTime.MinValue
, pretože ide o hodnotový typ a nie referenčný typ.Môžete tiež použiť nulovateľný DateTime, napríklad takto:
Alebo dlhší tvar:
A nakoniec je tu zabudovaný spôsob, ako sa odvolať na predvolené nastavenie akéhokoľvek typu. Pre referenčné typy to vráti
null
, ale pre náš príklad DateTime to vráti to isté akoDateTime.MinValue
:Ak používate .NET 2.0 (alebo novší), môžete použiť typ nullable:
alebo
potom neskôr:
A hodnotu môžete skontrolovať pomocou:
Alebo ho môžete použiť takto:
Viac informácií nájdete tu:
http://msdn.microsoft.com/en-us/library/b3h38hb0.aspx
Zvážil by som použitie nullable types.
DateTime? myDate
namiestoDateTime myDate
.