调试我的XNA项目时遇到了一个奇怪的问题。每当我点击某个断点并开始浏览“Locals”窗口时,整个过程和调试器都会终止,而不会通知原因。触发器可能到达带有红色感叹号的字段,该感叹号显示“功能评估已中止”。
我在我的代码中没有使用显式多线程,因此我很困惑,当它实际上没有运行时,进程如何终止(看似好像它正确到达终点)。
感谢您的帮助。
答案 0 :(得分:7)
这是因为您的访问器是无限递归的,导致堆栈溢出。
改变这个:
get { return Level; }
对此:
get { return level; }
这实际上是Visual Studio C#中相当普遍的事情,它非常烦人,自动完成功能总是更喜欢成员名称上的访问者名称,即使您在访问者本身内也是如此。我认为,经过5年的努力,微软现在已经修复了它。
编辑:不,我发现你已经在自己的问题中得出了这个结论。我想我应该首先阅读整个事情,我跳了枪。答案 1 :(得分:0)
好的,我找到了解决方案,因此,对于可能在这个问题上遇到类似问题的人:调试器在尝试评估导致堆栈溢出的属性时挂起,即
protected int level;
public int Level
{
get { return Level; }
}
进一步解释的那样