Почему мои часы VS2008 показывают неверные значения? - PullRequest
0 голосов
/ 28 июня 2010

У меня есть строковая переменная и строковая константа.Оба должны иметь одинаковое значение (я проверяю равенство в условных выражениях).«Правильные» значения обоих должны быть «scl».Во время отладки, если я ставлю часы на каждое, смотрю на них в окнах 'locals' или наведите на них курсор, отображается значение "sd", которое является значением другой константы в классе (есть многоконстанты и переменные в классе, которые правильно отображают значения).Если я вставлю Debug.WriteLine для рассматриваемой переменной / константы (в той же области, что и часы), в окне вывода будет напечатано правильное значение каждого из них.Что касается жизни, я не могу понять, почему это происходит, или как это исправить.

Ответы [ 2 ]

1 голос
/ 28 июня 2010

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

Спасибо всем за помощь!

0 голосов
/ 28 июня 2010

Это ленивое загруженное свойство?У меня были такие проблемы в прошлом, когда я делал что-то вроде этого (ужасно надуманный пример, но это будет)

public ClassWithMoo
{
   private string moo;

   public string Moo
   {
      get
      { 
         if (String.IsNullOrEmpty(this.moo)) this.moo = "Baa";
         return this.moo; 
      }
      set
      {
         this.moo = value;
      }
   }
}

public ClassThatUsesMoo
{
    ClassWithMoo cow = new ClassWithMoo();

    // breakpoint here would show cow.Moo = "Baa" 
    // This is because the debugger/watch window will instantiate the property!

    someCodeHere();

    cow.Moo = "Moo"; 
    debug.WriteLine(cow.Moo); // outputs 'Moo' now that it has been set properly
}
...