Как вставить пустую или пустую строку в переменную datetime? - PullRequest
2 голосов
/ 15 сентября 2010

Я получаю данные из XML-файла, и иногда дата пуста.

У меня есть этот код:

try { TimeTo = Convert.ToDateTime(R[15].ToString()); }    
catch { TimeTo = null ; }

но я получил ошибку, потому что не могу вставить ноль в дату / время var

что я могу сделать?

заранее

Ответы [ 3 ]

13 голосов
/ 15 сентября 2010

Сделайте TimeTo обнуляемым свойством, подобным этому:

public DateTime? TimeTo { get; set; }

Лучшее решение, чем try / catch - сделать что-то вроде этого:

5 голосов
/ 15 сентября 2010

DateTime является типом значения и поэтому не может быть назначен null.Но ...

DateTime.MinValue является хорошей заменой этому, чтобы помочь указать на отсутствие значения.

try { TimeTo = Convert.ToDateTime(R[15].ToString()); }    
catch { TimeTo = DateTime.MinValue; }

Другой вариант - использовать обнуляемые типы:

DateTime? TimeTo = null;

И ссылаться на это так:

if (TimeTo.HasValue)
   something = TimeTo.Value;
3 голосов
/ 15 сентября 2010

по некоторой касательной, если вы ожидаете, что R [15] может не быть датой, я бы посоветовал TryParse - лучший вариант

if(DateTime.TryParse(R[15].ToString(),out TimeTo))
{
     //TimeTo is set to the R[15] date do stuff you need to if it is good
}
else
{
    //TimeTo is default (i.e. DateTime.MinValue) do stuff for a bad conversion (e.g. log, raise exception etc)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...