Es foreach puramente "azúcar sintáctico"?
El compilador compila unforeach
bucle en algo así como unfor
loop cuando elforeach
se usa con una matriz. Y el compilador compila unaforeach
bucle en algo así como unwhile
loop cuando elforeach
se usa con unaIEnumerable
oIEnumerable<T>
. Entonces, ¿esto significaforeach
es puramentesyntactic sugar
? ¿O hay algo sofisticado al respecto?
¿El CLR sabe acerca deforeach
? ¿Hay algo específicamente diseñado paraforeach
en el código MSIL?