1

在调试我的应用程序时,我收到错误消息“无法评估表达式,因为当前线程处于堆栈溢出状态。”。我已经用谷歌搜索了这个错误,但找不到发生错误的代码。但在我的情况下,它没有显示错误出现在哪里。

它显示了这样的图片:

在此处输入图像描述

任何人都可以建议我可以采取的任何进一步的步骤来深入了解这个溢出的来源。我已经完成了我的应用程序中的编码部分..但不幸的是无法调试。任何想法都会非常感激......

刚才我注意到我有一些文件(.cs)只有代码,但没有设计。这会导致这样的stackoverflow异常吗?

4

3 回答 3

5

我猜你的代码中有这样的东西:

private T field;

public T Field
{
    get
    { 
         return Field; // note the capital F, causing recursion and eventually a StackOverflowExcpetion
    }
}
于 2013-08-22T11:22:58.347 回答
2

AStackOverflowException是不可恢复的错误。此时您无法评估任何内容,但当前线程的调用堆栈可能会清楚地指出原因。

检查调用堆栈并适当地修改您的代码 - 很可能,您有一个无限递归(或者您有导致 .NET 库无限递归的自引用标记/xml/类似)。

于 2013-08-22T10:45:19.790 回答
1

这与递归函数或 if 条件无关..我在我的应用程序中同时调用多个对象,这导致 StackOverflowException..我在我的程序中进行了一些修改。现在它工作正常..谢谢大家支持...

于 2013-08-24T07:07:03.793 回答