El concepto de recursividad es uno de los más complejos y difíciles de entender
en la programación orientada a objetos. Lo trataré de explicar con algunas ideas y algún ejemplo. En la vida hay muchos conceptos que se utilizan a sí mismos para explicarse. Una rama de un árbol a su vez tiene ramas, que a su vez puede tener ramas y así sucesivamente hasta que aparecen ramas que solo tienen hojas. Al igual que en este ejemplo, muchos algoritmos se explican en términos de sí mismos. Los algoritmos que poseen esta particularidad se denominan recursivos. Al igual que la mayoría de los lenguajes de programación, C# permite definir métodos recursivos. O sea, métodos que se llaman directa o indirectamente a sí mismos.
¿COMO SE IMPLEMENTA LA RECURSIVIDAD EN C#?
Para implementar soluciones recursivas en un lenguaje de programación tenemos
que utilizar una acción que se invoque a sí misma −con datos cada vez “más simples”−: funciones o procedimientos. Para entender la recursividad, a veces resulta útil considerar cómo se ejecutan las acciones recursivas en una computadora, como si se crearan múltiples copias del mismo código, operando sobre datos diferentes (en realidad sólo se copian las variables locales y los parámetros por valor).