while循环返回相同的日期值,即使每次添加一天后 - c#

时间:2015-06-01 00:23:50

标签: c#

我在这里做了一些非常愚蠢的事情,fromDate值始终保持原样。

public List<String> GetDates(DateTime fromDate, DateTime toDate)
{
    List<String> Dates = new List<String>();
    while (fromDate <= toDate)
    {
        Dates.Add(fromDate.ToShortDateString());
        fromDate.AddDays(1);
    }
    return Dates;
}

我无法弄清楚原因,请指教。

3 个答案:

答案 0 :(得分:4)

您需要分配到fromDateAddDays()不会修改调用它的实例:

fromDate = fromDate.AddDays(1);

答案 1 :(得分:3)

如果你看一下.AddDays的方法描述,你会发现它实际上返回了一个datetime对象,它实际上并没有修改调用AddDays的变量。

您可以通过以下方式获得所需的行为:

fromDate = fromDate.AddDays(1);

在以下网址查看更多信息:

https://msdn.microsoft.com/en-us/library/system.datetime.adddays%28v=vs.110%29.aspx

答案 2 :(得分:2)

MSDN Help for AddDays在“备注”下的页面末尾有以下句子值得注意:

  

此方法不会更改此DateTime的值。相反,它   返回一个新的DateTime,其值是此操作的结果。

只需存储返回的DateTime对象即可。

fromDate = fromDate.AddDays(1);