我有这个代码:
public IEnumerableIterator { get { if (false) yield return -1; } }
它相当丑陋,但是当你试图将它重构为:
public IEnumerableIterator { get { return null; } }
以下代码中断:
foreach (var item in obj.Iterator) { }
你会如何清理它?
public IEnumerableIterator { get { yield break; } }
NET框架已经具备的方式(使Jared的代码冗余)做的正是这一点,一个方法:System.Enumerable.Empty
.