我是C ++之后学习C#的新手。 VS2010。
尝试调试我的代码,我在“locals”框架中遇到了奇怪的空行。 调试器在我几秒钟后盯着这些空行退出。
请查看:http://pastebin.com/KZbfy8JF
感谢。
我花了至少3个小时寻找解决方案并玩弄代码无济于事。
答案 0 :(得分:9)
Value
属性getter和setter是无限递归的 - 将它们更改为:
public T Value { get; set; }
答案 1 :(得分:2)
已经回答(价值获取/设定),但这是一个提示:
在VS.NET中,按CTRL + ALT + E打开Exceptions对话框(取决于您在VS.NET中选择的配置文件,它可能在Debug-> Exceptions下)。这可以让你在抛出某些异常类型时中断,而不是完全堆栈展开和程序最终崩溃。
对于“Common Language Runtime Exceptions”,选中“Thrown”复选框,单击OK,然后运行您的程序。程序的执行将在异常点停止,这应该会更加明显。
在您的情况下,该程序会破坏您的财产。要查看更多内容,请打开Call Stack wndow(调试 - >> Windows->调用堆栈或CTRL + ALT + C)以查看完整堆栈,您会看到您的属性只是其中的唯一内容
答案 2 :(得分:0)
一般来说,堆栈溢出意味着你在没有回头的情况下递归。但是,我不知道你在哪里这样做。我要做的是在几个战略位置插入一个Console.WriteLine语句,以查看执行的行和频率。例如,在Insert的开头和内部循环中。这应该给你(和我们;)更多的信息。