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.
}