Defining local functions

A new language feature in C# 7 is the ability to define a local function. They are the method equivalent to local variables. In other words, they are methods that are only visible and callable from within the containing method in which they have been defined. In other languages, they are sometimes called nested or inner functions.

We will use a local function to implement a factorial calculation.

Add the following code to the Person class:

    // method with a local function 
    public int Factorial(int number) 
    { 
      if (number < 0) 
      { 
        throw new ArgumentException( 
          $"{nameof(number)} cannot be less than zero."); 
      } 
 
      int localFactorial(int localNumber) 
      { 
        if (localNumber < 1) return 1; 
        return localNumber * localFactorial(localNumber - 1); 
      } 
 
      return localFactorial(number); 
    } 

In the Program.cs file, in the Main method, add the following statement:

    WriteLine($"5! is {harry.Factorial(5)}"); 

Run the console application and view the output:

5! is 120
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.146.152.144