收益率回归后为什么继续下跌?

时间:2017-01-17 08:04:14

标签: c# return yield continue

我偶然发现了这段代码:

public IEnumerable<object> Process()
{
    foreach (var item in items)
    {

        if (item.Created < DateTime.Now)
        {   
            yield return item;
            continue;
        }
    }
}

有人可以帮助我理解为什么continue在这种情况下不是不必要的(VS不会将continue标记为冗余控制流跳转语句)?

1 个答案:

答案 0 :(得分:9)

slider_control将返回一个项目作为枚举器的一部分。一旦调用方法请求下一个项目,代码将在yield return之后的行上重新启动。

在这种特殊情况下,yield return是多余的,因为无论如何,循环在该点之后将不再进行任何工作。但作为一般应用,它有很多用途。