последовательность выполнения кода

Есть такой код

 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() {} - ведь там же нет его явного вызова ?


Ответы (0 шт):