这两种方法出现同样的行为给我是产量突破等同于从方法返回可枚举<T> .Empty返回的IEnumerable <T>
public IEnumerable<string> GetNothing()
{
return Enumerable.Empty<string>();
}
public IEnumerable<string> GetLessThanNothing()
{
yield break;
}
我在测试场景异形每我没有看到速度有意义的差异,但yield break
版本稍快。
是否有任何理由使用其中一种?一个比另一个更容易阅读吗?是否有一个行为差异对呼叫者有影响?
这里和其他任何地方(除非一个剖析器另有说明) – 2010-03-16 19:03:36