循环的实施更好?

时间:2011-09-29 12:21:20

标签: c# .net

我想知道,阅读和表演方面的实施效果更好 1)

for (DateTime
         dayStart = GetDayStart(today),
         dayEnd = GetDayEnd(today);
     dayStart < endOfPeriod;
     dayStart = dayStart.AddDays(1), dayEnd = dayEnd.AddDays(1))
{
    // ...
}

2)

DateTime dayStart = GetDayStart(today),
         dayEnd = GetDayEnd(today);

while (dayStart < endOfPeriod)
{
    // ...
    dayStart = dayStart.AddDays(1);
    dayEnd = dayEnd.AddDays(1);
}

3)或者,可能是另一个人吗?

提前致谢。

3 个答案:

答案 0 :(得分:2)

就个人而言,我发现第二个最具可读性。 for循环中的多个语句更容易出错,并且对于代码的客观读者来说不太清楚。

答案 1 :(得分:2)

为了便于阅读,我会选择第二个选择。 for语句对于更简单的循环非常有用,但是当它变得更复杂时,它会越来越难以理解。

对于表演,应该没有任何区别。编译器可能会从两个不同的源代码生成完全相同的代码。

答案 2 :(得分:1)

如果您正在寻找方法的微小变化,您还可以查看使用Timespan ......

        DateTime dayStart = GetDayStart(today);
        TimeSpan days = GetDayEnd(today) - dayStart;
        while (dayStart < endOfPeriod)
        {
            DateTime dayEnd = dayStart.Add(days);

            // ...
            dayStart = dayStart.AddDays(1);
        }

我更喜欢这个的原因是因为我不喜欢你必须增加两个日期的事实。