yield关键字的使用

2018-06-18 04:47:14来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

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

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:.NET六大剑客:栈、堆、值类型、引用类型、装箱和拆箱

下一篇:工作中遇到的令人头疼的bug