舉例如下
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); } } } /* 《程式語言教學誌》的範例程式 http://pydoing.blogspot.com/ 檔名:yield.cs 功能:示範 C# 程式 作者:張凱慶 時間:西元 2013 年 6 月 */
最簡單的方式就是實作 System.Collections 中的 IEnumerable 介面 (interface)
public class Week : System.Collections.IEnumerable {
然後實作 GetEnumerator() 方法 (method) ,最後的 return 前要加上 yield
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# 程式設計手冊)
沒有留言:
張貼留言