叠代器使開發人員能夠支持類或結構中的foreach叠代,而不必實現整個IEnumerable或IEnumerator接口。只需提供壹個叠代器來遍歷類中的數據結構。當編譯器檢測到叠代器時,它將自動生成IEnumerable接口或IEnumerator接口的Current、MoveNext和Dispose方法。
擴展數據:
叠代器的特征:
1.叠代器是壹段代碼,可以返回相同類型的有序值序列;
2.叠代器可以用作方法、操作符或get訪問器的代碼體;
3.叠代器代碼使用yieldreturn語句依次返回每個元素,yield break將終止叠代;
4.類中可以實現多個叠代器,每個叠代器必須像任何類成員壹樣具有唯壹的名稱,並且可以由客戶端在foreach語句中調用。代碼調用如下:簡單類中的foreach(int x。叠代器2){ };
5.叠代器的返回類型必須是IEnumerable或IEnumerator
6.叠代器是壹個產生有序值序列的語句塊,它不同於具有壹個或多個yield語句的常規語句塊;
7.叠代器不是成員,它只是實現函數成員的壹種方式。了解叠代器實現的成員可以被叠代器可能實現或未實現的其他成員覆蓋和重載非常重要。
8.叠代器塊不是C#語法中的唯壹元素。它們在幾個方面受到限制,並且主要作用於函數成員聲明的語義。它們只是語法中的句子塊。
9.9.yield關鍵字用於指定返回值。當到達yieldreturn語句時,保存當前位置。下次調用叠代器時,執行將從這個位置重新開始。叠代器對於集合類特別有用。它們提供了壹種簡單的方法來叠代不常用的數據結構,如二叉樹。
參考資料:
百度百科-叠代器