它是一个自我调用的函数,通常在每次迭代中使用不同的参数集.在大多数情况下,它会反复调用自身,直到有一组输入参数将"停止"它.
如果你不确定某个参数集会阻止它,它会永远调用它自己,否则你最终会出现堆栈溢出.:-)
C#中的一个简单示例是:
void PrintPositiveNumbersBackwards(int number)
{
// this is a condition which stops the recursion
if (number == 0)
return;
Console.WriteLine(number);
// this is where the function calls itself,
// with a different (smaller) input parameter
PrintPositiveNumbersBackwards(number - 1);
}
Run Code Online (Sandbox Code Playgroud)