C#递归函数详细介绍及使用方法

2019-12-30 11:57:11于丽
什么是递归函数/方法? 
任何一个方法既可以调用其他方法也可以调用自己,而当这个方法调用自己时,我们就叫它递归函数或递归方法。 

通常递归有两个特点: 
1. 递归方法一直会调用自己直到某些条件被满足 
2. 递归方法会有一些参数,而它会把一些新的参数值传递给自己。 
那什么是递归函数?函数和方法没有本质区别,但函数仅在类的内部使用。以前C#中只有方法,从.NET 3.5开始才有了匿名函数。 

所以,我们最好叫递归方法,而非递归函数,本文中将统一称之为递归。 

在应用程序中为什么要使用递归?何时使用递归?如何用? 
“写任何一个程序可以用赋值和if-then-else语句表示出来,而while语句则可以用赋值、if-then-else和递归表示出来。”(出自Ellis Horowitz的《数据结构基础(C语言版)》 - Fundamentals of Data Structure in C) 
递归解决方案对于复杂的开发来说很方便,而且十分强大,但由于频繁使用调用栈(call stack)可能会引起性能问题(有些时候性能极差)。 
我们来看一看下面这个图: