using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
//迭代器可以返回相同类型的值的有序序列的一段代码,
//可以用作方法,运算符,get访问器的代码体。
//IEnumerable公开枚举数,该枚举数支持在非泛型集合上进行简单迭代
//迭代器的返回类型必须为IEnumerable和IEnumerator的一种
public class Family:System.Collections.IEnumerable//迭代器最常用的方法是对IEnumerable接口实现GetEnumerable()方法
{
string[] MyFamily = { "父亲", "母亲", "妹妹" };
public System .Collections.IEnumerator GetEnumerator()
{
for (int i=0;i<MyFamily.Length; i++)
{
yield return MyFamily[i];//迭代器代码使用yield return依次返回每个元素。
//yield return 终止迭代。
}
}
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Family myfamily = new Family();
foreach (string str in myfamily)
{
richTextBox1.Text += str + "\n";
}
}
}
}