Мне нужно проверить значение DateTime
, если оно имеет значение или нет.
У меня есть несколько вариантов:
if (dateTime == default(DateTime))
или
if (dateTime == DateTime.MinValue)
или используя значение с нулевым значением DateTime?
if (nullableDateTime.HasValue)
Лично я предпочел бы третью версию, так как ее довольно хорошо читаем. Но в нашей базе данных есть несколько столбцов datetime, которые определены как не равные нулю. Поэтому в некоторых случаях я должен использовать первые два варианта.
Я где-то читал, что ключевое слово default
должно использоваться при работе с дженериками, но разве это не является более читаемым в этом случае? При использовании второго варианта я должен знать, что значением по умолчанию для нового и пустого экземпляра DateTime является DateTime.MinValue, у которого есть запах детали реализации для меня.
Итак, какой вариант использовать для использования "лучшей практики"?