Как проверить, не является ли поле DateTime нулевым или пустым?
Я очень новичок в С#, и у меня есть сомнения.
В приложении, в котором я работаю, я нашел что-то вроде этого в коде:
if (!String.IsNullOrEmpty(u.nome))
Этот код просто проверяет, не является ли поле nome объекта u пустой пустой нулевой строкой.
Хорошо, это очень ясно для меня, но что я могу сделать, чтобы проверить это, если поле не является строкой, но является DateTime объектом?
Ответы
Ответ 1
Если вы объявляете DateTime, значением по умолчанию является DateTime.MinValue, и, следовательно, вы должны проверить его следующим образом:
DateTime dat = new DateTime();
if (dat==DateTime.MinValue)
{
//unassigned
}
Если DateTime имеет значение NULL, хорошо, что другая история:
DateTime? dat = null;
if (!dat.HasValue)
{
//unassigned
}
Ответ 2
DateTime
не является стандартным типом NULL. Если вы хотите присвоить значение null переменной типа DateTime
, вы должны использовать тип DateTime?
, который поддерживает нулевое значение.
Если вы хотите протестировать вашу переменную (например, переменная содержит значение, отличное от значения по умолчанию), вы можете использовать ключевое слово "default", как в следующем коде:
if (dateTimeVariable == default(DateTime))
{
//do work for dateTimeVariable == null situation
}