一、简介
1.C# 1.0使用foreach语句可以轻松地迭代集合。在C# 1.0中,创建枚举器仍需要做大量的工作。C# 2.0添加了yield语句,以便于创建枚举器;
2.yield 关键字向编译器指示它所在的方法是迭代器块。在迭代器块中,yield 关键字与 return 关键字结合使用,向枚举器对象提供值。这是一个返回值,例如,在 foreach 语句的每一次循环中返回的值。yield 关键字也可与 break 结合使用,表示迭代结束;
3.使用该语句的约束:
(1)不允许不安全块;
(3)yield return 语句不能放在 try-catch 块中的任何位置。
该语句可放在后跟 finally 块的 try 块中;
(4)yield break 语句可放在 try 块或 catch 块中,但不能放在 finally 块中;
(5)不能出现在匿名方法中。
二、实例
public static void Main(string[] args)
{
foreach (var item in GetNums(2, 5))
{
Console.WriteLine(item);
}
Console.ReadLine();
}
public IEnumerable GetNums(int a, int b)
{
for (int i = 0; i < 10; i++)
{
yield return (a + b) * i;
if (i > 5)
{
yield break;
}
}
}