As we know that a function or method can be called anywhere in a program depending on its access specifier. Hence, a method can call itself. This process is called recursion and a function performing this process is known as a recursive function. A function which is in the process of potential function calls is also a recursive function. C# allows us to use a function recursively. This is also referred as c# recursion. If a function calls itself then we call this type of recursion as immediate recursion.
How to write a recursive function in C#?
We can write a C# recursive function as:
Return-type Function-Name(argument(s))
{
if a simple case //this is known as stopping condition.
{
return simple value
}
else
{
Call to function itself with simpler version of problem
}
}
Below example will clarify the concept of C# recursion.
C# Recursion Example
using System; namespace recursive_function { class Program { public int sum(int no) { if(no == 0) { return 0; } else { return no + sum(no - 1); } } static void Main(string[] args) { int no = 6; Program p = new Program(); Console.WriteLine("Sum = "+p.sum(no)); } } }
In the example above we use a C# recursive function to find the sum of all natural number up to the value which we pass to the function. As it is clear that function is calling a simpler version of itself each time the condition is not true. And at the end when the condition is true it executes statement inside stopping condition body.
Let’s have a look at another example to calculate factorial of a number using a recursive function in C#.
using System; namespace recursive_function { class Program { public int factorial(int no) { if(no == 0 || no ==1) { return 1; } else { return no * factorial(no - 1); } } static void Main(string[] args) { int no = 0; Console.WriteLine("Please enter a positive number : "); no = Convert.ToInt32(Console.ReadLine()); Program p = new Program(); Console.WriteLine("factorial = "+p.factorial(no)); } } }
Output
This above function finds the factorial of a natural number. It works exactly like the example above. I.e. if stopping condition is true it executes the statements inside that condition body otherwise, it calls itself with a simpler version of the problem.
Note:- These are not the only ways to find the sum of all the natural numbers or to find the factorial of a number. These examples are just to explain the concept of recursive functions. And how we can use these functions according to our needs.