zoukankan      html  css  js  c++  java
  • yield关键字的使用

    yield的中文是什么意思呢?

    在金山词霸上面的翻译是:

    vt.   

    vi.  

    n.   

    个人觉得比较符合yield关键字在C#中的意思是退让,退位,让权。

    yield关键字主要是在yield迭代器块中使用,使用yield的时候,C#编译器会创建一个状态机来保存当前我们迭代器块中的状态,返回当前需要返回的一个变量,然后暂时退出当前迭代器块。之后当下次需要调用迭代器块的时候,编译器会根据之前保存的状态然后进行你所定义的操作之后返回变量。

    下面是一个例子:

    创建一个IEnumerableExample类,实现IEnumerable接口,并在GetEnumerator方法中使用yield关键字进行返回变量。

    public class IEnumerableExample:IEnumerable
            {
                private object[] values;
    
                public IEmuerableExample(object[] values)
                {
                    this.values = values;
                 
                }
                public IEnumerator GetEnumerator()
                {
                    for(int i=0;i<values.Length;i++)
                    {
                        yield return values[i];
                    }
                }
            }
    

    主函数:

     static void Main(string[] args)
            {
                object[] values={'a','b','c','d'};
                IEmuerableExample ie = new IEmuerableExample(values);
                foreach (var item in ie)
                {
                    Console.WriteLine(item);
                }
                Console.ReadKey();
            }
    

    输出为:

    这就是本人对于yield关键字的愚见,如有错误,请多多指正,谢谢。

  • 相关阅读:
    数独游戏技巧(转)
    Strange Way to Express Integers(中国剩余定理+不互质)
    C Looooops(poj2115+扩展欧几里德)
    X问题(中国剩余定理+不互质版应用)hdu1573
    合并果子(优先队列 +或者+哈夫曼)
    Shaping Regions(dfs)
    Modular Inverse(zoj3609+欧几里德)
    Contest2075
    Clock Pictures(kmp + Contest2075
    Opening Ceremony(贪心)
  • 原文地址:https://www.cnblogs.com/huangweikun/p/4781019.html
Copyright © 2011-2022 走看看