C#_迭代器
What

迭代器(Iterator)又稱光標(biāo)(Cursor)
提供一個(gè)方法順序訪問(wèn)一個(gè)聚合對(duì)象的各個(gè)元素而不暴露內(nèi)部標(biāo)識(shí)
無(wú)需關(guān)心對(duì)象的內(nèi)存分配的實(shí)現(xiàn)細(xì)節(jié)
用foreach來(lái)實(shí)現(xiàn)迭代器遍歷,會(huì)默認(rèn)調(diào)用對(duì)象實(shí)現(xiàn)的對(duì)應(yīng)接口方法,只要該方法即可。
基本實(shí)現(xiàn)
【IEnumberable】方法執(zhí)行后得到IEnumerator對(duì)象的MoveNext方法,方法的返回值為bool類型,為是否舉行執(zhí)行包裹的邏輯。
1.實(shí)現(xiàn)一個(gè)int類型的cursorpos對(duì)象默認(rèn)賦值為-1,表示可以得到數(shù)據(jù)的位置。
2.實(shí)現(xiàn)一個(gè)返回值為object對(duì)象的Current方法,返回對(duì)應(yīng)的訪問(wèn)對(duì)象。
3.實(shí)現(xiàn)一個(gè)無(wú)返回值的Reset方法,重新設(shè)置cursorpos的位置為-1;
【IEnumerator】實(shí)現(xiàn)該方法返回當(dāng)前對(duì)象即可this
語(yǔ)法糖實(shí)現(xiàn)
【IEnumerable】實(shí)現(xiàn)返回值為Enumerator的GetEnumerator方法,方法體中for遍歷訪問(wèn),使用yield return語(yǔ)法糖返回對(duì)應(yīng)索引。本質(zhì)還是實(shí)現(xiàn)里基本方法,語(yǔ)言自己會(huì)自己實(shí)現(xiàn)處理
泛型類的實(shí)現(xiàn)也是和b的實(shí)現(xiàn)基本一樣
實(shí)現(xiàn)接口:IEnumerator,IEnumberable
引用:using System.Collections

Why

1.為開發(fā)人員提供便利

How
