C# Recursive Function

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 : "); 