Цикл for превращается в while C# 1.0
Почему цикл for превращается в while? C# 1.0 написано. Я так думаю, что в тот момент там не было цикла for (но ведь это кажется бредовой мыслью, или всё же это истинно?).
Ответы (1 шт):
Я полагаю, это окошко показывает вывод декомпилятора. В этом случае, тут нечему удивляться - код, скомпилированный в инструкции для реального или виртуального процессора является более низкоуровневым, чем исходный. Определенные синтаксические конструкции исходного кода могут превращаться в одни и те же последовательности инструкций низкоуровневого.
Да даже если рассмотреть if {} else {} в С - при компиляции эта конструкция превращается как бы в goto для одного из ветвей. Просто современные декомпиляторы обычно достаточно умны, чтобы увидеть здесь конструкцию ветвлению и декомпилировать корректно.
В вашем случае цикл for и цикл while функционально эквивалентны, поэтому декомпилятор просто не может знать, какого вида цикл был в исходном коде.