Defining local functions
A language feature introduced in C# 7 is the ability to define a local function. Local functions 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 static int Factorial(int number) { if (number < 0) { throw new ArgumentException( $"{nameof(number)} cannot be less than zero."); } return localFactorial(number); int localFactorial(int localNumber) { if (localNumber < 1) return 1; return localNumber * localFactorial(localNumber - 1); } }
Note
Local functions can be defined anywhere inside a method: the top, the bottom, or even somewhere in the middle!
In the Program...