对于常见的方法类型,C#有一些命名约定:
BeginFoo()/ EndFoo()用于异步方法TryGet()/ TryParse()返回false而不是抛出异常FooOrDefault()对于返回default(T)而不是抛出异常的方法IsFoo 对于布尔标志我想知道,有一个递归的内部方法吗?例如,在此示例中来自另一个Stack Overflow问题:
public int CalculateSomethingRecursively(int someNumber)
{
return doSomethingRecursively(someNumber, 0);
}
// What to call this?
private int doSomethingRecursively(int someNumber, int level)
{
if (level >= MAX_LEVEL || !shouldKeepCalculating(someNumber))
return someNumber;
return doSomethingRecursively(someNumber, level + 1);
}
Run Code Online (Sandbox Code Playgroud)
在CI中,人们使用foo(...)+ foo_r(...)作为惯例.但是在.NET中怎么样?
在加载XslCompiledTransform时,我有一些大的xslt崩溃iis(StackOverflowException),而旧的(已弃用的)XslTransform工作正常.大模板是否存在一些已知问题?奇怪的是,相同的XslCompiledTransform在win32应用程序中成功加载.
抱歉,如果这是错误的站点,但让我们想象一个函数 (C#):
public int Increment(int i)
{
int j = i;
if (j++ < Math.Pow(10, 12)) j = Increment(j);
return j;
}
Run Code Online (Sandbox Code Playgroud)
这个函数没什么用,只是一个例子。我可以想象,自递归“循环”的最终递归返回值将通过每个递归函数将结果传递回,将每个方法返回到前一个递归,然后最终返回到初始函数调用,返回到调用者功能。
我的问题是我们可以有多少次递归,是什么导致了这个限制?谢谢。