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关键字的愚见,如有错误,请多多指正,谢谢。

  • 相关阅读:
    《C++必知必会》读书笔记
    看美图是一种享受
    C指针-指向另一指针的指针
    顺序队列基本操作
    Using Windows Live Writer to write first offline blog
    堆和栈的区别 [摘录]
    进程与线程的区别
    《Effective C#》
    析构函数virtual与非virtual区别
    常用SQL语句技法
  • 原文地址:https://www.cnblogs.com/huangweikun/p/4781019.html
Copyright © 2011-2022 走看看