在Nullable DateTime对象上调用AddDays

2 c# datetime

AddDays(x)之前在DateTime对象上使用过方法并且它工作正常但现在我的对象定义如下:

public DateTime? To_Date { get; set; }
Run Code Online (Sandbox Code Playgroud)

看起来这个没有AddDays方法.那怎么称呼呢?

Jon*_*nna 7

因为DateTime?可以处于表示状态null,所以如果它为空,则需要考虑该怎么做.

最明显的事情是留值null(后一天nullIS null).

DateTime? later = ToDate.HasValue
  ? To_Date.Value.AddDays(numberOfDays)
  : (DateTime?)null;
Run Code Online (Sandbox Code Playgroud)

也许你可以使用一些有意义的默认日期,在这种情况下:

DateTime later = (ToDate ?? defaultDate).AddDays(numberOfDays);
Run Code Online (Sandbox Code Playgroud)

这将defaultDateToDate没有值时使用,ToDate否则使用值.