在一个产生惰性列表的方法中,如果我什么都不返回会发生什么?

本文关键字:什么 如果 返回 一个 列表 方法 | 更新日期: 2023-09-27 18:06:45

看来这段代码是有效的。我想知道如果getTest(1)

    IEnumerable<int> getTest(int n)
    {
        if (n == 0)
            yield return 1;
        else
            ;
    }

在一个产生惰性列表的方法中,如果我什么都不返回会发生什么?

它将返回一个空但非空的IEnumberable<int>

一旦你将一个方法标记为迭代器(通过在方法的任何地方使用yield),它可以执行 0个或多个 yield return s来返回序列中的数据。

实际上,获取空IEnumberable的最简单方法是IEnumerable<T> Empty() { yield break; }
或者直接调用Enumerable.Empty<T>()

它只是返回一个空的,但完全"有效"的枚举对象。

相关文章: