for循环,我有以下循环:对于日期迭代器
for (DateTime dateTime = FromDate; dateTime.CompareTo(ToDate) < 1; dateTime.AddDays(1)) { .. }
在调试我看到dateTime.AddDays执行(1),但不改变日期时间。 任何可预测的原因?
for循环,我有以下循环:对于日期迭代器
for (DateTime dateTime = FromDate; dateTime.CompareTo(ToDate) < 1; dateTime.AddDays(1)) { .. }
在调试我看到dateTime.AddDays执行(1),但不改变日期时间。 任何可预测的原因?
AddDays方法返回一个新的日期,所以你应该有这样的事情:dateTime=dateTime.AddDays(1)
AddDays
返回新日期 - 它不改变现有值(它是不可变的)
也许你可以使用:
dateTime = dateTime.AddDays(1)
对于中期,你可能也发现dateTime < ToDate
比CompareTo
更容易阅读(一目了然)。
AddDate返回添加日期的新DateTime。你必须将其更改为这个
for (DateTime dateTime = FromDate; dateTime.CompareTo(ToDate) < 1; dateTime = dateTime.AddDays(1)) { .. }
dateTime.AddDays(1)
不会改变dateTime
值。它会用新数据返回一个新对象。
此方法不会改变这个日期的价值 。而是返回 新的DateTime,其值为此操作的结果 。