-9
    public bool update(registrationcommon objreg)
    {
        Userdl objuser = new Userdl();
        try
        {
          return update(objreg);

        }
        catch (Exception e)
        {
            throw e;
        }
    }
4

4 回答 4

2

嗯,是的,它会的。您的方法无条件地调用自身,假设它Userdlregistrationcommon. (顺便说一句,你应该考虑改进你所有的名字。)

你怎么期望它终止?大概你打算调用一个不同 update的方法 - 所以想想你想调用哪个方法,以及你应该如何调用它。它是不同类中的方法吗?同一类中的方法但具有不同的参数?

于 2013-03-16T10:13:28.930 回答
1

这是因为您在update不停地递归调用函数:

public bool update(registrationcommon objreg)
{
    // ...
    return update(objreg);
    // ...
}

你必须在某个时候终止它。

于 2013-03-16T10:13:05.250 回答
0

我认为,您在没有退出条件的情况下调用递归方法 - 这是一个问题!

于 2013-03-16T10:13:35.600 回答
0

每个update呼叫update,哪个呼叫update,哪个...

每次调用方法时,您的当前位置都会被压入堆栈。在正常情况下,当您从方法调用返回时,您会从堆栈中“弹出”并回到原来的位置。但是,如果您在示例中的循环中执行此操作,最终堆栈会溢出。因此,术语“堆栈溢出”。

于 2013-03-16T10:16:06.590 回答