Захват внешней переменной в C#
Лямбда может читать переменные, объявленные выше по коду в том же блоке. Это опирается на уже знакомую область видимости: имя видно внутри вложенного блока:
int baseVal = 10;
Func<int, int> addBase = (int x) => x + baseVal;
Console.WriteLine(addBase(5));
Строку-префикс тоже можно взять снаружи:
string prefix = "id:";
Func<int, string> tag = (int n) => prefix + n;
Console.WriteLine(tag(7));
Задайте int factor = 2. Создайте
Func<int, int> scale, которая умножает
аргумент на factor. Выведите результат
для 6.