看來這段代碼是有效的。我想知道如果getTest(1)
在產生懶惰列表的方法中,如果我什麼都不返回會發生什麼?
IEnumerable<int> getTest(int n)
{
if (n == 0)
yield return 1;
else
;
}
看來這段代碼是有效的。我想知道如果getTest(1)
在產生懶惰列表的方法中,如果我什麼都不返回會發生什麼?
IEnumerable<int> getTest(int n)
{
if (n == 0)
yield return 1;
else
;
}
它會返回一個空的,但非空IEnumberable<int>
。
您標記的方法,迭代器(通過使用yield
在任何地方的方法),它可以執行零個或多個yield return
s到返回序列中的數據。
實際上,獲得空IEnumberable的最簡單方法是IEnumerable<T> Empty() { yield break; }
。
或只是致電Enumerable.Empty<T>()
。
它只是返回一個空的,儘管完全「有效」,可枚舉。一切都按照預期完成。
它不會返回任何項目(即可枚舉的序列將具有長度0)。 – Jon