舉例如下
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# 程式設計手冊)
沒有留言:
張貼留言