舉例如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | public class Week : System.Collections.IEnumerable { string [] m_Days = { "Sunday" , "Monday" , "Tuesday" , "Wednesday" , "Thursday" , "Friday" , "Saturdar" }; public System.Collections.IEnumerator GetEnumerator() { for ( int i = 0; i < m_Days.Length; i++) { yield return m_Days[i]; } } } class TestWeek { static void Main() { Week week = new Week(); foreach ( string day in week) { System.Console.WriteLine(day); } } } /* 《程式語言教學誌》的範例程式 檔名:yield.cs 功能:示範 C# 程式 作者:張凱慶 時間:西元 2013 年 6 月 */ |
最簡單的方式就是實作 System.Collections 中的 IEnumerable 介面 (interface)
1 | public class Week : System.Collections.IEnumerable { |
然後實作 GetEnumerator() 方法 (method) ,最後的 return 前要加上 yield
4 5 6 7 8 | public System.Collections.IEnumerator GetEnumerator() { for ( int i = 0; i < m_Days.Length; i++) { yield return m_Days[i]; } } |
編譯執行,結果如下

中英文術語對照 | |
---|---|
迭代器 | iterator |
物件 | object |
迴圈 | loop |
介面 | interface |
方法 | method |
您可以繼續參考
泛型
多型
迭代器
名稱空間
相關目錄
回 C# 快速導覽
回 C# 教材
回首頁
參考資料
Standard ECMA-334 C# Language Specification
msdn: Iterator (C# 程式設計手冊)
沒有留言:
張貼留言