我试图比较日期并在原始比较上方的一行中有一个空引用异常。如果我评论下面这一行,上面的行就可以了,这很奇怪
var predicate = PredicateBuilder.New<CarAuction>(p => p.IsActive == true);
var weekendDate = Utility.NextDateOfWeekDay(DateTime.Now, DayOfWeek.Saturday); //line 1
predicate = predicate.And(p => p.SaleEndDateTime <= weekendDate); //line 2
函数NextDateOfWeekDay
只返回一周中某一天的简单日期。
public static DateTime NextDateOfWeekDay(DateTime from, DayOfWeek dayOfWeek)
{
int start = (int)from.DayOfWeek;
int target = (int)dayOfWeek;
if (target <= start)
target += 7;
int days = target - start;
DateTime targetDate = from.AddDays(days);
return targetDate;
}
每次调用时肯定会返回一个日期,因此它不能为空。例外情况是将null引用设置为object的实例。
如果我只是评论第2行,那么一切正常,这对我来说是个陌生的情况,因为在抛出异常时第2行还没有被执行。
P.S:我已经清理并重建了我的解决方案,而且我没有使用任何线程。