using System.Collections.Generic;
public static void Main()
var numbers = TestYield(5);
Console.WriteLine("Caller: about to iterate.");
foreach (int i in numbers)
Console.WriteLine("Caller: {0}", i);
static IEnumerable<int> TestYield(int upto)
Console.WriteLine("Iterator: start.");
Console.WriteLine("Iterator: end.");
Console.WriteLine("Dispose");