我有一个字符串变量和一个字符串常量。两者都应该是相同的值(我正在测试条件中的相等性)。两者的“正确”值都应该是“scl”。在调试时,如果我在每个上面放一个手表,在“本地”窗口中查看它们,或者将鼠标悬停在它们上面,显示的值是“sd”,这是类中不同常量的值(还有很多其他类中正确显示值的常量和变量)。如果我为有问题的变量/常量值插入一个 Debug.WriteLine,(在与手表相同的范围内)输出窗口会打印每个的正确值。对于我的生活,我无法弄清楚为什么会发生这种情况,或者如何纠正它。
问问题
273 次
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 回答