C# 什么样的循环实施更好?

C# 什么样的循环实施更好?,c#,.net,C#,.net,我想知道,从阅读和性能方面看,什么实现更好。 (一) 用于(日期时间) dayStart=GetDayStart(今天), dayEnd=GetDayEnd(今天); dayStart

我想知道,从阅读和性能方面看,什么实现更好。
(一)

用于(日期时间)
dayStart=GetDayStart(今天),
dayEnd=GetDayEnd(今天);
dayStart
(二)

DateTime dayStart=GetDayStart(今天),
dayEnd=GetDayEnd(今天);
while(dayStart
3) 或者,可能是其他人


提前谢谢。

就我个人而言,我觉得第二本书最具可读性。对于代码的客观读者来说,for循环中的多个语句更容易出错,也不太清晰。

我个人认为第二个语句最具可读性。对于代码的客观读者来说,for循环中的多个语句更容易出错,也不太清晰。

为了可读性,我选择第二个选项。
for
语句非常适合于更简单的循环,但当它变得更复杂时,就更难理解了


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

为了可读性,我选择第二个选项。
for
语句非常适合于更简单的循环,但当它变得更复杂时,就更难理解了


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

如果您想了解方法的细微变化,也可以使用Timespan

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

            // ...
            dayStart = dayStart.AddDays(1);
        }
DateTime dayStart=GetDayStart(今天);
TimeSpan天=GetDayEnd(今天)-dayStart;
while(dayStart

我更喜欢这个的唯一原因是因为我不喜欢两个日期都必须递增的事实

如果你想寻找方法的细微变化,你也可以考虑使用Timespan

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

            // ...
            dayStart = dayStart.AddDays(1);
        }
DateTime dayStart=GetDayStart(今天);
TimeSpan天=GetDayEnd(今天)-dayStart;
while(dayStart

我更喜欢这个的唯一原因是因为我不喜欢两个日期都必须递增的事实

你想干什么?这两个对我来说都没有吸引力。我想按一天的间隔进行迭代,从当前日期开始到
endOfPeriod
什么是
endOfPeriod
<代码>GetDayEnd()
<代码>GetDayStart()
?看起来你在抽象一些不需要抽象的东西。@Jeremy是的,他是,函数和变量名都很清楚,他唯一的问题是可读性。性能不应该在两者之间有所不同。@CodeCaster这不是我问题的重点。。。他有一张名单,记得吗?我担心我不知道这应该做什么,或者它应该如何作为书面形式使用,所以从可读性和性能的角度来看,我想知道这是否是多余的。我想再澄清一下。你想做什么?这两个对我来说都没有吸引力。我想按一天的间隔进行迭代,从当前日期开始到
endOfPeriod
什么是
endOfPeriod
<代码>GetDayEnd()
<代码>GetDayStart()
?看起来你在抽象一些不需要抽象的东西。@Jeremy是的,他是,函数和变量名都很清楚,他唯一的问题是可读性。性能不应该在两者之间有所不同。@CodeCaster这不是我问题的重点。。。他有一张名单,记得吗?我担心我不知道这应该做什么,或者它应该如何作为书面形式使用,所以从可读性和性能的角度来看,我想知道这是否是多余的。我想再澄清一下。
        DateTime dayStart = GetDayStart(today);
        TimeSpan days = GetDayEnd(today) - dayStart;
        while (dayStart < endOfPeriod)
        {
            DateTime dayEnd = dayStart.Add(days);

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