Компилятор компилирует цикл foreach
в нечто вроде цикла for
когда foreach
используется с массивом. И компилятор компилирует foreach
цикл в нечто вроде в while
цикла, когда foreach
используется с IEnumerable
или IEnumerable<T>
. Значит ли это, что foreach
- это чисто syntactic sugar
? Или в этом есть что-то сложное?
Знает ли CLR о foreach
? Есть ли что-то специально разработанное для foreach
в коде MSIL?