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...