我有一個字符串變量和一個字符串常量。兩者應該是相同的價值(我在條件測試平等)。兩者的「正確」值應該是「scl」。在調試的時候,如果我在每個地方都放一個手錶,在'本地人'的窗口中查看它們,或者將鼠標懸停在它們上面,顯示的值是「sd」,這是類中不同常量的值(還有很多其他常量和類中正在顯示值的變量)。如果我爲所討論的變量/常數值插入一個Debug.WriteLine(與手錶的範圍相同),輸出窗口會打印出每個值的正確值。對於我的生活,我無法弄清楚爲什麼會發生這種情況,或者如何糾正它。爲什麼我的VS2008手錶顯示不正確的值?
0
A
回答
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
}
+0
這是有道理的。然而,沒有這樣的事情正在完成。此外,其中一個錯誤值是不變的,所以將常數重新分配到合適的值是不可能的。 – 2010-06-28 19:16:14
1
我似乎通過改變常量的值已經固定它,跑一個調試會話,然後將其值改回原來的值。也許這清除了某種調試緩存。
感謝您的幫助!
+2
我想我知道發生了什麼事。一個常量的語義應該是*值*常數* *永恆*。編譯器假定即使在程序集版本之間,常數*從不*會發生變化。因此,當程序集B引用程序集A中的一個常量C時,編譯器*會將C中的值嵌入到B中。如果您然後在A中更改常量,那麼B仍然具有原始值,並且會一直重新編譯B.如果希望該值是在運行時拾取的值,而不是使用屬性或只讀字段。 – 2010-06-28 20:50:20
相關問題
- 1. 爲什麼我的XLST變量沒有顯示正確的值?
- 2. 爲什麼我的TextBoxFor正確顯示貨幣值?
- 3. 爲什麼我的警報框不顯示正確的文本?
- 4. 爲什麼ProgressDialog不能正確顯示?
- 5. 爲什麼UISearchBar顯示不正確?
- 6. 爲什麼我的圖表無法正確顯示?
- 7. 爲什麼ImageButton控件不顯示正確的座標值?
- 8. 爲什麼我的CustomCell類不能正確顯示?
- 9. 爲什麼我的HeatMap不能正確顯示?
- 10. 爲什麼我的ListView不能正確顯示Details視圖?
- 11. 爲什麼我的SpriteKitNode位置不能正確顯示?
- 12. 爲什麼我的setVisibility視圖不能正確顯示?
- 13. 爲什麼我的Rails FormHelper(Formtastic)不能正確顯示布爾值?
- 14. 數據表不顯示正確的值
- 15. 爲什麼我的jQuery UI的手風琴不顯示精確的尺寸
- 16. 爲什麼我的程序沒有顯示正確的結果?
- 17. 我應該添加什麼來正確顯示字段的值?
- 18. 爲什麼不顯示錶格值?
- 19. Java新手:爲什麼不給我正確的結果?
- 20. 下拉列表顯示不正確!爲什麼?
- 21. 爲什麼在IE7中該列表不能正確顯示?
- 22. 爲什麼我的RibbonWindow不正確?
- 23. 爲什麼我的CGImage在setNeedsDisplay後無法正確顯示
- 24. 爲什麼OpenGL無法正確顯示我加載的圖像?
- 25. 確定我的手錶正在顯示的時間
- 26. Fastercsv顯示格式不正確的CSVError,我做錯了什麼?
- 27. 我不明白爲什麼這不正確顯示掃描的信息
- 28. 爲什麼Google Chrome不顯示正確的編碼?
- 29. 爲什麼不突出顯示正確的數字?
- 30. 爲什麼不會IE顯示這個正確的
你可能已經試過了,但我的第一個想法是,你有沒有嘗試重新啓動VS? – 2010-06-28 18:46:54
聽起來像你需要清理和重建你的項目。一些調試信息聽起來不對。 – 2010-06-28 18:47:04
已經做到了。但謝謝你的建議。 – 2010-06-28 18:47:55