This question already has answers here:
Nullable DateTimes and the AddDays() extension
                                
                                    (4个答案)
                                
                        
                                3年前关闭。
            
                    
嗨,AddDays在MVC4中不起作用?

  public ActionResult customerid()
  {
    List<Customer> n = (from c in db.Customers where c.IsDeleted == false  select c).ToList();

        for (var i = 0; i < n.Count; i++)
        {
            var objCusCreatedDate=n[i].CreatedDate;

            var objNextDate = objCusCreatedDate.AddDays(+120);

         }
        return View();
    }


在这段代码中,我在AddDays附近遇到错误。请帮助我解决此问题。


  错误1'System.Nullable'不包含'AddDays'的定义,找不到扩展方法'AddDays'接受类型为'System.Nullable'的第一个参数(您是否缺少using指令或程序集引用?)

最佳答案

由于字段CreatedDate可为空,因此需要使用属性Value来获取实际日期:

var objCusCreatedDate=n[i].CreatedDate.Value;
var objNextDate = objCusCreatedDate.AddDays(120);


只有在知道所有日期都将填充值的情况下,您才能执行此操作。否则,您将获得例外。

或者,您可以使用方法GetValueOrDefault并指定日期为空时要使用的默认值。在此示例中,默认值设置为DateTime.Now

var objCusCreatedDate=n[i].CreatedDate.GetValueOrDefault(DateTime.Now);
var objNextDate = objCusCreatedDate.AddDays(120);

10-04 12:05