C# 自递归函数极限

C# 自递归函数极限,c#,recursion,C#,Recursion,如果这是错误的站点,很抱歉,但是让我们想象一个函数(C#): 公共整数增量(整数i) { int j=i; 如果(j++

如果这是错误的站点,很抱歉,但是让我们想象一个函数(C#):

公共整数增量(整数i)
{
int j=i;
如果(j++
该函数非常无用,但它只是一个示例。我可以想象,自递归“循环”的最终递归返回值将通过每个递归函数向下传递结果,将每个方法返回到前一个递归,然后最终返回到初始函数调用,返回到函数的调用方

我的问题是我们可以有多少个递归,是什么导致了这个限制?谢谢。

但是,如果您有达到该限制的危险,您应该重新设计代码以删除递归

另外,我想我会注意到
int.MaxValue
大约是2.1*10^9(21亿),这小于10^12,所以(即使忽略递归限制)您的函数也不会返回。当您尝试从
j==int.MaxValue
递增时,您将抛出异常(如果您在环境中)或循环回
j==int.MinValue
(如果未选中)。

但是,如果您有达到该限制的危险,您应该重新设计代码以删除递归

另外,我想我会注意到
int.MaxValue
大约是2.1*10^9(21亿),这小于10^12,所以(即使忽略递归限制)您的函数也不会返回。当您尝试从
j==int.MaxValue
递增时,您将抛出异常(如果您在环境中)或循环回
j==int.MinValue
(如果未选中)。

但是,如果您有达到该限制的危险,您应该重新设计代码以删除递归

另外,我想我会注意到
int.MaxValue
大约是2.1*10^9(21亿),这小于10^12,所以(即使忽略递归限制)您的函数也不会返回。当您尝试从
j==int.MaxValue
递增时,您将抛出异常(如果您在环境中)或循环回
j==int.MinValue
(如果未选中)。

但是,如果您有达到该限制的危险,您应该重新设计代码以删除递归


另外,我想我会注意到
int.MaxValue
大约是2.1*10^9(21亿),这小于10^12,所以(即使忽略递归限制)您的函数也不会返回。当您尝试从
j==int.MaxValue
递增时,您将抛出一个异常(如果您在环境中)或循环回
j==int.MinValue
(如果未选中)。

看看这个,哈,我想这是在-
StackOverflowException
上询问它的正确站点,具体取决于硬件。谢谢。看看这个,哈,我猜这是一个正确的网站,可以在-
StackOverflowException
上询问它,具体取决于硬件。谢谢。看看这个,哈,我猜这是一个正确的网站,可以在-
StackOverflowException
上询问它,具体取决于硬件。谢谢。看看这个,哈,我猜这是一个正确的网站,可以在-
StackOverflowException
上询问它,具体取决于硬件。谢谢。有两点很好!加上对问题的评论,答案很清楚,谢谢。两点不错!加上对问题的评论,答案很清楚,谢谢。两点不错!加上对问题的评论,答案很清楚,谢谢。两点不错!加上对问题的评论,答案很清楚,谢谢。
public int Increment(int i)
{
    int j = i;
    if (j++ < Math.Pow(10, 12)) j = Increment(j);

    return j;
}