如果从未发生yield return,则返回null吗?

lan*_*nce 13 c# ienumerable yield-return

该方法通过yield return语句返回IEnumerable.

如果yield语句永远不会发生(它在条件逻辑中),方法是返回null,还是返回计数为0的Enumerable?

Dar*_*rio 17

一个有效的IEnumerable,当您遍历它时不会产生任何值.

想一想:你可以将IEnumerable生成器存储在一个变量中 - 当你实际迭代结果时,代码本身就会被执行.如果有的话,你怎么能执行代码null?或者你怎么知道这个函数没有运行它就不会产生任何结果.


Jay*_*Jay 8

后者 - 你GetEnumerator()无论如何都能够,不会有任何枚举的项目.这相当于Enumerable.Empty<T>.