Local Functions

CSharp · Console

/Program.cs

using System;
					
public class Program
{
	public static void Main()
	{
		var name = "Kyle";

		// local function
		string sayHello1()
		{
			return $"Hello, {name}";
		}

		// exression-bodied local function
		string sayHello2() => $"Hello, {name}";

		// explicit lambda
		Func<string> sayHello3 = () => $"Hello, {name}";
		
		// func constructor
		var sayHello4 = new Func<string>(() => $"Hello, {name}");

		// explicit return type (C#10)
		// Feature 'lambda return type' is not available in C# 9.0.
		var sayHello5 = string () => $"Hello, {name}";

		// implicit lambda (C#10)
		// Feature 'inferred delegate type' is not available in C# 9.0.
		var sayHello6 = () => $"Hello, {name}";

		Console.WriteLine(sayHello1());
		Console.WriteLine(sayHello2());
		Console.WriteLine(sayHello3());
		Console.WriteLine(sayHello4());
		Console.WriteLine(sayHello5());
		Console.WriteLine(sayHello6());
	}
}
;