一、概述 1.迭代器是可以返回相同類型的值的有序序列的一組代碼片段。 2.迭代器可以用作方法,get 訪問器 3.使用yield return 返回每個值,yield break 可以中止迭代 4.可以在一個類中使用多個迭代。 二、構(gòu)建自己的迭代器 如何構(gòu)建自己的迭代器呢。 1、最常用的方法是實現(xiàn)IEnumerable接口的GetEnumerator() 方法。 如下: public IEnumerator GetEnumerator() 這樣,就實現(xiàn)了自己的一個迭代器,可以在別的地方應(yīng)用了. TRJEnumerable trjEnumerable = new TRJEnumerable(); foreach (string s in trjEnumerable) 2、可以不繼承接口IEnumerbale,但在類的內(nèi)部要實現(xiàn)一個返回IEnumerable類型的方法。 如下: public class TRJIEnumerbaleDemon1 調(diào)用的時候: TRJIEnumerbaleDemon1 trjiEnumerbaleDemon1 = new TRJIEnumerbaleDemon1(); foreach (string value in trjiEnumerbaleDemon1.SampleIterator()) 當(dāng)然,這個自定義方法可以帶有參數(shù)。比如:想對同一數(shù)據(jù)源執(zhí)行2種不同的訪問形式,可以提供一個按升序返回元素的迭代器,而提供按降序返回元素的另一個迭代器。
這樣可以隨心所欲的控制返回的值. 3、應(yīng)用 最近在做一個小工具,數(shù)據(jù)源是一些類型,比如:int ,long,string,byte,zcInt,zcBool等。 可以把這樣類型配置在一個xml中,然后程序啟動的時候讀取。自定義自己的類型迭代器,返回自己的類型值。 4、對接口IEnumerable和IEnumerator的區(qū)別不是怎么了解,但大致看了一下: IEnumerable 接口只有方法GetIEnumerator()這個方法。 IEnumerator接口有一個屬性,2個方法:MoveNext(),Reset(),Current。 |
|
來自: kittywei > 《111.38-c#類》