Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
跳过潜在的空值c#_C#_.net_Asp.net Mvc_Json_Fullcalendar - Fatal编程技术网

跳过潜在的空值c#

跳过潜在的空值c#,c#,.net,asp.net-mvc,json,fullcalendar,C#,.net,Asp.net Mvc,Json,Fullcalendar,我有这段代码,最终被序列化为JSON,用于Jquery FullCalendar插件。ToUnixTimeSpan方法在DateTime对象中执行任务,并返回自1970年以来的秒数 DateEnd可以为null。在这段代码中,如果DateEnd为null,如何测试null并跳过end=ToUnixTimespan(例如DateEnd)?是否有一个C#等价于groovy安全操作符 var listEvents = from e in eventRepository.GetAllEvents()

我有这段代码,最终被序列化为JSON,用于Jquery FullCalendar插件。ToUnixTimeSpan方法在DateTime对象中执行任务,并返回自1970年以来的秒数

DateEnd可以为null。在这段代码中,如果DateEnd为null,如何测试null并跳过end=ToUnixTimespan(例如DateEnd)?是否有一个C#等价于groovy安全操作符

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
                         };
有关TounixTimeSpan方法的更多信息:

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

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

很难说清楚,因为我们不知道ToUnixTimespan返回的类型

等等。。。当我可以利用Jon的工作来做一些宣传时,为什么我要把这些浪费在评论上…-)


这应该可以解决“无法从‘System.DateTime’转换为‘System.DateTime’”的错误。

@Jon[end=e.DateEnd??ToUnixTimespan(e.DateEnd);]?@Rafael e.Belliard,如果e.DateEnd为空,则调用ToUnixTimespan,这与@Doozer1979想要的几乎相反。噢,挑战“飞碟”的传说@拉斐尔:斯特拉格说了什么,它假设所需的
end
类型与
e.DateEnd
类型相同,我怀疑它不是……谢谢大家。Jon使用该行代码会导致以下错误:无法从“System.DateTime”转换为“System.DateTime”。谢谢你的帮助,对C来说还是比较新的#
end = e.DateEnd == null ? (long?) null : ToUnixTimespan(e.DateEnd.Value)