c# - 跳过潜在的空值 c#

标签 c# .net asp.net-mvc json fullcalendar

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

DateEnd 可以为空。在此代码块中,如果 DateEnd 为 null,我如何测试 null 并跳过 end = ToUnixTimespan(e.DateEnd)?是否有与常规安全运算符等效的 C#?

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);
    }

最佳答案

那么,怎么样:

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

很难确定,因为我们不知道 ToUnixTimespan 返回的类型。

关于c# - 跳过潜在的空值 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3344069/

相关文章:

javascript - 如何使用 ASP.NET MVC 动态创建 css/js/html 文件并在运行时返回

c# - 索引搜索功能

c# - 是否有 C# 等价于 C sprintf(result, "%5.5s", stringValue)

c# - 绑定(bind)到属性的 WPF Datagrid RowDetailsTemplate 可见性

c# - requiredif Entity Framework 空字段

c# - 非阻塞套接字 vs BeginXXX vs SocketAsyncEventArgs

javascript - 如何更改日期选择器语言

c# - 从始终匿名的对象中提取单个属性?

c# - HTTP 错误 401.0 - 未经授权的错误消息

ASP.NET MVC2模型绑定(bind)问题