任何人都可以解释为什么VS2012的调试器为同一个对象成员显示不同的值? (见图)
http://s2.uploads.ru/jlkw0.png(对不起VS的非英语界面,但我认为情况很清楚。)
这里是代码:
答案 0 :(得分:8)
调试经验似乎在识别标识符的正确绑定方面做得不好。在您的示例中,这意味着名为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
悬停在哪一个例子上,都会出错!