последовательность выполнения кода
Есть такой код
public class Progression : IEnumerable<int>
{
private readonly int _itemCount;
public Progression(int itemCount) => _itemCount = itemCount;
public IEnumerator<int> GetEnumerator() => new ProgressionIterator(_itemCount);
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}
internal class Program
{
private static void Main(string[] args)
{
Progression progression = new Progression(100);
foreach (int i in progression)
Console.WriteLine(i);
Console.Read();
}
}
не понятно как в цикле foreach (int i in progression) вызывается метод
public IEnumerator<int> GetEnumerator() {} - ведь там же нет его
явного вызова ?