C#中yield return是C#的语法糖,当编译时,C#内部会自动生成 一个枚举器。
class Program
{
static void Main(string[] args)
{
Person p = new Person();
//Person 类中实现了IEnumerator接口的GetEnumerator方法,所以可以用Foreach遍历。
foreach (var item in p)
{
Console.WriteLine(item);
}
Console.ReadKey();
}
}
class Person
{
private string[] firends = new string[] { "dd","ss","ff","ff","ee"};
public int Name { get; set; }
public int Age { get; set; }
public IEnumerator GetEnumerator()
{
for (int i=0;i< firends.Length;i++)//迭代器,也是循环遍历。
{
yield return firends[i];
}
}
}