DateTime.Ticks为可为空的日期时间

Viv*_*vek 3 c# datetime

在我的应用程序中,article.DatePublished是一个可以为空的DateTime字段.现在我有以下代码:

      list.Add(article.DatePublished.Ticks);
Run Code Online (Sandbox Code Playgroud)

在这里我得到一个编译错误,因为Ticks属性不适用于可空的DateTimes.

处理此问题的一种方法是:

if (article.DatePublished != null)
      list.Add(((DateTime)article.DatePublished).Ticks);
Run Code Online (Sandbox Code Playgroud)

这有效,但这是一个优雅的解决方案吗?或者我们可以让它"更好"吗?

谢谢,

维韦克

Ant*_*ram 5

你需要到达的.Value财产DateTime?.

if (nullableDate != null) // or if (nullableDate.HasValue)
    ticks = nullableDate.Value.Ticks;
Run Code Online (Sandbox Code Playgroud)

否则您可以使用nullableDate.GetValueOrDefault().Ticks,这会将空日期标准化为默认值DateTime,即DateTime.MinValue.