【发布时间】:2017-06-01 04:52:16
【问题描述】:
我偶然发现了这段代码:
public IEnumerable<object> Process()
{
foreach (var item in items)
{
if (item.Created < DateTime.Now)
{
yield return item;
continue;
}
}
}
有人可以帮我理解为什么continue 在这种情况下是不必要的(VS 没有将continue 标记为冗余控制流跳转语句)?
【问题讨论】:
-
VS 并没有做很多事情。我怀疑在安装了 JetBrains Resharper 的情况下运行 VS 会指出它的冗余
-
确实 VS 不够聪明,无法找到这个问题,但是 ReSharper 遇到了问题(在 VS2010 和 R# 2016 上测试)
-
可能是由 C# 中
yield关键字的新手编写的。或者有人试图展示如何不做事。 -
为什么
continue在这种情况下是不必要的。我们不能。它是没用的。