一、概述 1.迭代器是可以返回相同类型的值的有序序列的一组代码片段。 2.迭代器可以用作方法,get 访问器 3.使用yield return 返回每个值,yield break 可以中止迭代 4.可以在一个类中使用多个迭代。 二、构建自己的迭代器 如何构建自己的迭代器呢。 1、最常用的方法是实现IEnumerable接口的GetEnumerator() 方法。 如下: public IEnumerator GetEnumerator() 这样,就实现了自己的一个迭代器,可以在别的地方应用了. TRJEnumerable trjEnumerable = new TRJEnumerable(); foreach (string s in trjEnumerable) 2、可以不继承接口IEnumerbale,但在类的内部要实现一个返回IEnumerable类型的方法。 如下: public class TRJIEnumerbaleDemon1 调用的时候: TRJIEnumerbaleDemon1 trjiEnumerbaleDemon1 = new TRJIEnumerbaleDemon1(); foreach (string value in trjiEnumerbaleDemon1.SampleIterator()) 当然,这个自定义方法可以带有参数。比如:想对同一数据源执行2种不同的访问形式,可以提供一个按升序返回元素的迭代器,而提供按降序返回元素的另一个迭代器。
这样可以随心所欲的控制返回的值. 3、应用 最近在做一个小工具,数据源是一些类型,比如:int ,long,string,byte,zcInt,zcBool等。 可以把这样类型配置在一个xml中,然后程序启动的时候读取。自定义自己的类型迭代器,返回自己的类型值。 4、对接口IEnumerable和IEnumerator的区别不是怎么了解,但大致看了一下: IEnumerable 接口只有方法GetIEnumerator()这个方法。 IEnumerator接口有一个属性,2个方法:MoveNext(),Reset(),Current。 |
|
来自: kittywei > 《111.38-c#类》