пропуская потенциальные нули C # - PullRequest
2 голосов
/ 27 июля 2010

У меня есть этот блок кода, который в конечном итоге сериализуется в JSON для использования в плагине Jquery FullCalender.Метод ToUnixTimeSpan задает объект DateTime и возвращает количество секунд с 1970 года.

DateEnd может быть нулевым.В этом блоке кода, как я могу проверить на нулевое значение и пропустить end = ToUnixTimespan (e.DateEnd), если DateEnd равен нулю?есть ли в C # эквивалент оператора Groovy Safe?

var listEvents = from e in eventRepository.GetAllEvents()

                         select new
                         {
                             id = e.EventID,
                             title = e.EventTitle,
                             start = ToUnixTimespan(e.DateStart),

                             end = ToUnixTimespan(e.DateEnd),
                             url = "/Events/Details/" + e.EventID
                         };

Дополнительная информация о методе ToUnixTimespanMethod:

private long ToUnixTimespan(DateTime date)
    {
        TimeSpan tspan = date.ToUniversalTime().Subtract(new DateTime(1970, 1, 1, 0, 0, 0));
        return (long)Math.Truncate(tspan.TotalSeconds);
    }

Ответы [ 2 ]

6 голосов
/ 27 июля 2010

Ну, как насчет:

end = e.DateEnd == null ? (long?) null : ToUnixTimespan(e.DateEnd)

Трудно сказать наверняка, поскольку мы не знаем тип, возвращаемый ToUnixTimespan.

3 голосов
/ 27 июля 2010

Подожди минутку ... Почему я трачу это на комментарий, когда могу использовать работу Джона для какого-то представителя ..; -)

end = e.DateEnd == null ? (long?) null : ToUnixTimespan(e.DateEnd.Value) 

Что должно решить "не удалось преобразовать из" System.DateTime? " в «System.DateTime». " ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...