Как точно реализовано foreach
в С#?
Я предполагаю, что его часть выглядит следующим образом:
var enumerator = TInput.GetEnumerator();
while(enumerator.MoveNext())
{
// do some stuff here
}
Однако я не уверен, что происходит. Какая методология используется для возврата enumerator.Current
для каждого цикла? Возвращает ли он [для каждого цикла] или выполняет анонимную функцию или что-то, чтобы выполнить тело foreach
?