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

Get C# 7 and .NET Core: Modern Cross-Platform Development - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.