Цикл for превращается в while C# 1.0

Почему цикл for превращается в while? C# 1.0 написано. Я так думаю, что в тот момент там не было цикла for (но ведь это кажется бредовой мыслью, или всё же это истинно?).введите сюда описание изображения


Ответы (1 шт):

Автор решения: arrowd

Я полагаю, это окошко показывает вывод декомпилятора. В этом случае, тут нечему удивляться - код, скомпилированный в инструкции для реального или виртуального процессора является более низкоуровневым, чем исходный. Определенные синтаксические конструкции исходного кода могут превращаться в одни и те же последовательности инструкций низкоуровневого.

Да даже если рассмотреть if {} else {} в С - при компиляции эта конструкция превращается как бы в goto для одного из ветвей. Просто современные декомпиляторы обычно достаточно умны, чтобы увидеть здесь конструкцию ветвлению и декомпилировать корректно.

В вашем случае цикл for и цикл while функционально эквивалентны, поэтому декомпилятор просто не может знать, какого вида цикл был в исходном коде.

→ Ссылка