using System.Collections.Generic;
using System.Threading.Tasks;
public static void LocalFunction()
Console.WriteLine("\n## LocalFunction");
var newValue = CalculateNewValue();
Console.WriteLine($"val = {val} -> {newValue}");
public static void StaticLocalFunction()
Console.WriteLine("\n## StaticLocalFunction");
var newValue = CalculateNewValue(val);
Console.WriteLine($"val = {val} -> {newValue}");
static int CalculateNewValue(int theValue)
public static async Task AsynchronousStreams()
Console.WriteLine("\n## AsynchronousStreams");
await foreach (var number in GenerateSequence())
Console.WriteLine(number);
static async IAsyncEnumerable<int> GenerateSequence()
for (int i = 0; i < 20; i++)
public static async Task Main()
Console.WriteLine("### C# - Structure and Performance");
await AsynchronousStreams();