c# - пользоваться - контрольные значения visual studio 2017




Во время отладки переменная не существует в текущем контексте (3)

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

   public float Value
    {
        get
        {
            float result = Memory.ReadFloat(Address);

            double Radian = Math.Round(result, 2); // **BREAK POINT HERE**
            double Degree = Math.Round(Math.Round((double)(result * 180 / Math.PI)), 2); // **BREAK POINT HERE**

            return result; // **BREAK POINT HERE**
        }
    }

Я разбил все три пункта, но не могу заставить Visual Studio 2012 показывать мне значения. Только результат будет отображаться в окне локальных, нет переменной с именем Radian или Degree.

Например, если я добавлю часы для переменной Radian, я получу это сообщение со значком красного креста:

Радиан - имя «Радиан» не существует в текущем контексте


Возможно, локальные переменные были оптимизированы компилятором JIT. Поскольку вы используете Visual Studio, вы можете переключить конфигурацию на Debug и пересобрать.

Если нет, вы можете настроить JIT-компилятор так, чтобы он отключал оптимизацию и генерировал информацию отслеживания - см. Здесь, как настроить конфигурацию . Это должно позволить вам видеть локальную переменную, когда вы присоединяете отладчик к процессу.


Если вы пытаетесь выполнить отладку в сборке выпуска (режим выпуска вместо режима отладки), вы получите эту ошибку. Измените конфигурацию вашего решения на Debug (Любой ЦП), и вы сможете увидеть значения переменных в ближайшем окне.


Я столкнулся с другим сценарием в VS2012, который заставляет переменные «исчезать» в режиме отладки:

убедитесь, что у вас нет этого:

if(false)
   {
   .
   }
else
   {
   //Code here will be optimized and variables will not be available.
   }




visual-studio-2012