zoukankan      html  css  js  c++  java
  • yield return 和yield break

    这个还是有点意思,两个都是有返回的意思,但是区别在哪里呢? 1.return 会销毁函数的局部变量,下次调用的时候又会产生新的值 2.yield 当退出函数的时候,变量人然存在,函数下次调用的时候变量仍然存在。

    "yield break"用来表明迭代结束,跳出迭代

    以下示例来源网络:

    class A:IEnumerable
    {
       private int[] array=new int[10];
       public IEnumrator GetEnumerator()
       {
           for(int i=0;i<10;i++)
           {
               yield return array[i];
           }                     
       }
    }

    如果你只想让用户访问ARRAY的前8个数据,则可做如下修改.这时将会用到yield break,修改函数如下

    public IEnumrator GetEnumerator()
    {
        for(int i=0;i<10;i++)
        {
            if(i<8)
                yield return array[i];
            else
                yield break;
        }                     
    }

    这样,则只会返回前8个数据.

    "yield break"用来表明迭代结束,跳出迭代

    下面是个例子,如果你定义这样一个迭代函数:

    int i = 0;
    while (true) {
        if (i < 5) {
            yield return i;
        } 
        else {
            yield break;
        }
        i++;
    }
    Console.Out.WriteLine("无法执行~");
  • 相关阅读:
    家庭记账本APP开发准备(二)
    使用花生壳5做内网穿透
    课堂练习之可视化的强化版
    第五周总结
    课堂练习之疫情可视化
    第四周总结
    第三周总结
    第二周总结
    课堂练习之最大子数组
    软工第二学期开课博客
  • 原文地址:https://www.cnblogs.com/tiancai/p/4885357.html
Copyright © 2011-2022 走看看