Возможный дубликат:
Как работают циклы foreach на С#?
Я искал интернет, и у меня возникли проблемы с поиском ответов на то, что действительно происходит за кулисами с циклом foreach
на С#.
Я знаю, что этот вопрос действительно не относится к собственно кодированию, но он беспокоит меня. Я новичок в программировании OO и особенно в интерфейсах. Я понимаю, что это контракты, и я понимаю, как работают IEnumerable
и IEnumerator
- или так я думаю.
Я читал эту статью в MSDN: IEnumerable Interface
Я понимаю, как все настроено. Я немного неясен, хотя в цикле Main
, как foreach
знает, чтобы повторить все значения в _people
. Как он это знает? Как он отслеживает Current
, просто позвонив return new PeopleEnum(_people);
?
EDIT: я не вижу, как это точный дубликат. Да, его аналогичные основания и тот же вопрос задают, но мы ищем разные ответы или ответ, который я хотел, не обсуждался в предыдущем вопросе.
A foreach loop, как foreach (int я в obj) {...} kinda, равен
... является "любопытным", а не тем ответом, который я ищу.