Во время отладки я попытался сохранить промежуточные результаты вычислений в переменную, чтобы при выполнении условия точки останова я мог проверить это значение. Однако компилятор C # (или CLR) оптимизировал эту переменную как неиспользуемую. Я решил проблему, сделав переменную общедоступным полем класса, однако я хотел бы знать, есть ли простое решение этой проблемы.
Флажок «Оптимизировать код» снят. Конфигурация сборки - отладка.
Edit: обнаружено, что это влияет только на некоторые неиспользуемые переменные в итераторах, которые обычно заканчиваются как поля в автоматически сгенерированном классе итератора; неиспользуемые переменные, которые находятся в пределах блоков, не содержащих операторов yield, сохраняются.