VS2012 のデバッガーがオブジェクトの同じメンバーに対して異なる値を表示している理由を誰かに説明してもらえますか? (図参照)
http://s2.uploads.ru/jlkw0.png (VS の非英語インターフェースで申し訳ありませんが、状況は明らかだと思います。)
ここにコード:
VS2012 のデバッガーがオブジェクトの同じメンバーに対して異なる値を表示している理由を誰かに説明してもらえますか? (図参照)
http://s2.uploads.ru/jlkw0.png (VS の非英語インターフェースで申し訳ありませんが、状況は明らかだと思います。)
ここにコード:
デバッグ エクスペリエンスでは、識別子の正しいバインディングを特定する作業がうまくいかないようです。あなたの例では、これは、呼び出された識別子が、正しいオブジェクトの対応するプロパティではなく、Source
実際に の値を示していることを意味します。this.Source
メンバーにカーソルを合わせて展開すると、適切な値を取得できることに注意してくださいy
(ただし、これは明らかに優れたエクスペリエンスではありません)。
この問題が明らかになるさらに紛らわしい方法があります。
type T() =
member val P = 1
member this.DoSomething() =
let P = "test" // set breakpoint here, hover over P
printfn "%i" this.P // set breakpoint here, hover over P
T().DoSomething()
さて、どのインスタンスにP
カーソルを合わせても、間違った結果が得られます!