Наиболее приемлемым способом представления нулевого значения будет использование Nullable<DateTime>
, т.е. DateTime?
. Таким образом, нулевое значение ясно представляется как ненулевое значение вместо магического значения, которое требует особой обработки.
(Нулевое значение, конечно, также требует особой обработки, но его гораздо сложнее не заметить.)
Если вы используете магическое значение для представления нулевых значений, никакое значение не намного лучше, чем любое другое. Вы можете использовать DateTime.MinValue
или new DateTime()
(которые дают тот же результат), или вы можете использовать любое произвольное значение, выходящее за пределы диапазона, используемого вашим приложением.
Значение типа DateTime.MinValue имеет небольшое преимущество, так как оно уже определено как константа, с другой стороны, вы можете определить свою собственную константу с немного лучшим именем, например:
public const DateTime DateThatMeansNull = new DateTime(1685, 3, 21);