输出“堆栈溢出。重复 24047 次......”是否意味着我在 dotnet 中发现了一个错误?

我为我的项目编写了新代码,当我运行单元测试时,我注意到 dotnet 崩溃了。

但我不知道为什么。所以我将一些代码移动到控制台应用程序并运行它。然后我得到了这个输出:

Stack overflow.
Repeat 24047 times:
--------------------------------
   at [[ class and method names here ]]
--------------------------------
   at [[ class and method names here ]]

一段时间后,出现 StackOverflowException: The runtime refused to evaluate the expression at this time. 之后,dotnet 再次崩溃。

而已。所以构建过程(编译)成功了,但是好像CLR崩溃了??

这是我的错还是 DotNet 中的错误?

编辑:这是一些代码,也是我的问题的解释。这是我网站上的递归错误: https://dotnetfiddle.net/RD69Mk

stack overflow Does the output "Stack overflow. Repeat 24047 times ..." mean that I found a bug in dotnet?
原文答案
author avatar

接受的答案

这是你的错。您有一个递归方法调用,您应该查看列出的提到的类和方法。不要向 Microsoft 报告。

相反,请使用调试器并单步执行您的代码,以查看它做了什么以及为什么这样做。

重现问题的最简单程序是

class Program
{
    static void Main()
    {
        Main();
    }
}

它是一个有效的 C# 程序吗?是的。是否有意义?不,是微软的问题吗?不。

递归实现需要一个停止条件,即它打破对自身的重复调用的情况。


答案:

相关问题