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