在C#中的收益率突破

这个问题在这里已经有了答案:

  • 什么是“收益中断”?在C#中做什么? 9个答案

  • 谈论C# ,如果你想写一个迭代器,如果源为空或者为空,它将不返回任何内容。 这里是一个例子:

    public IEnumerable<T> EnumerateThroughNull<T>(IEnumerable<T> source)
    {
        if (source == null)
            yield break;
    
        foreach (T item in source)
            yield return item;
    }
    

    没有yield break就不可能在迭代器中返回一个空集。 它还指定迭代器已结束。 您可以将yield break作为不返回值的return语句。

    int i = 0;
    while (true) 
    {
        if (i < 5)       
            yield return i;
        else            
            yield break; // note that i++ will not be executed after this statement
        i++;
    }    
    
    链接地址: http://www.djcxy.com/p/54335.html

    上一篇: yield break in c#

    下一篇: yield break in Python