舉個簡單例子:
數組如 string ar=new string[]{"a","b","c"}
這是壹個簡單字符串數組。
假設我需要提取數組中的每壹個元素,我該怎麽辦呢?
所以那些天才們就想出壹種方案,用C#語法表達是:
forech(string item in ar)
{
MessageBox.Show(item);
}
然後妳可以把forech(string item in ar)這種語法理解為叠代器.
專業解釋:
1.叠代器是可以返回相同類型值的有序序列的壹段代碼;
2.叠代器可用作方法、運算符或get訪問器的代碼體;
3.叠代器代碼使用yield return語句依次返回每個元素,yield break將終止叠代;
4.可以在類中實現多個叠代器,每個叠代器都必須像任何類成員壹樣有惟壹的名稱,並且可以在foreach語句中被客戶端代碼調用;
5.叠代器的返回類型必須為IEnumerable和IEnumerator中的任意壹種;
6.叠代器是產生值的有序序列的壹個語句塊,不同於有壹個 或多個yield語句存在的常規語句塊;
7.叠代器不是壹種成員,它只是實現函數成員的方式,理解這壹點是很重要的,壹個通過叠代器實現的成員,可以被其他可能或不可能通過叠代器實現的成員覆蓋和重載;
8.叠代器塊在C#語法中不是獨特的元素,它們在幾個方面受到限制,並且主要作用在函數成員聲明的語義上,它們在語法上只是語句塊而已;