我想知道,阅读和表演方面的实施效果更好 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)或者,可能是另一个人吗?
提前致谢。
答案 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);
}
我更喜欢这个的原因是因为我不喜欢你必须增加两个日期的事实。