0

文字列変数と文字列定数があります。どちらも同じ値である必要があります (条件付きで等しいかどうかをテストしています)。両方の「正しい」値は「scl」である必要があります。デバッグ中に、それぞれに時計を付けるか、「ローカル」ウィンドウでそれらを見るか、それらにカーソルを合わせると、表示される値は「sd」であり、これはクラス内の異なる定数の値です (他にも多くの定数があります)。値を正しく表示しているクラスの定数と変数)。問題の変数/定数値に Debug.WriteLine を挿入すると、(ウォッチと同じスコープで) 出力ウィンドウにそれぞれの正しい値が出力されます。私の人生では、なぜこれが起こっているのか、またはそれを修正する方法がわかりません。

4

2 に答える 2

1

定数の値を変更し、デバッグセッションを実行してから、値を本来あるべき値に戻すことで修正したようです。おそらく、これにより、ある種のデバッグ キャッシュがクリアされました。

助けてくれてありがとう!

于 2010-06-28T19:38:06.540 に答える
0

遅延ロードされたプロパティですか?私は過去にこのようなことをしたときにこのような問題を抱えていました(恐ろしく不自然な例ですが、うまくいきます)

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
}
于 2010-06-28T19:05:35.357 に答える