在C#中,yield return用于创建一个迭代器(iterator),使得一个方法可以在每次调用时返回一个序列中的元素。通过yield return可以简化迭代器的实现,使代码更加简洁和易读。
当在一个方法中使用yield return时,这个方法就会变成一个迭代器方法,可以通过foreach循环来迭代返回的元素序列。每次调用迭代器方法时,方法会执行到yield return语句处,将表达式的值作为当前元素返回给调用者,并在下一次调用时从yield return语句的下一行开始执行。
例如,下面是一个使用yield return的简单示例:
public static IEnumerable<int> GetNumbers()
{
yield return 1;
yield return 2;
yield return 3;
}
// 调用GetNumbers方法
foreach (int num in GetNumbers())
{
Console.WriteLine(num);
}
在上面的示例中,GetNumbers方法是一个迭代器方法,通过yield return关键字返回了一个包含1、2、3的整数序列。在foreach循环中,可以依次遍历并打印出每一个元素。