Как предотвратить оптимизацию компилятором C # / CLR неиспользуемых переменных в сборках DEBUG?

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

Флажок «Оптимизировать код» снят. Конфигурация сборки - отладка.

Edit: обнаружено, что это влияет только на некоторые неиспользуемые переменные в итераторах, которые обычно заканчиваются как поля в автоматически сгенерированном классе итератора; неиспользуемые переменные, которые находятся в пределах блоков, не содержащих операторов yield, сохраняются.

8
задан srgstm 20 October 2011 в 11:03
поделиться