6
任何人都可以解釋爲什麼VS2012的調試器對同一個對象成員顯示不同的值嗎? (見圖)爲什麼F#調試器在說謊?
http://s2.uploads.ru/jlkw0.png(對不起,VS的nonEnglish接口,但我認爲情況是清楚的。)
下面的代碼:
任何人都可以解釋爲什麼VS2012的調試器對同一個對象成員顯示不同的值嗎? (見圖)爲什麼F#調試器在說謊?
http://s2.uploads.ru/jlkw0.png(對不起,VS的nonEnglish接口,但我認爲情況是清楚的。)
下面的代碼:
調試經驗似乎做識別標識符正確綁定的工作很差。在你的例子中,這意味着任何標識符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
情況下,你會得到錯誤的東西!
那麼,這是否意味着Studio是一個有點兒車?或者這只是我應該記住的一個技巧? – Vladimir
我肯定會說它是一個錯誤,是的。 – kvb