Recursion:
*
Recursion
Note that using recursion can have a severe impact on your code, as each recursive function call will be appended to the stack. If there are too many calls this could lead to a StackOverflowException. Most “natural recursive functions” can be written as a for, while or foreach loop construct, and whilst not looking so posh or clever will be more efficient.
Always think twice and use recursion carefully - know why you use it:
If you want more theory, please read: