Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csPmLmArg 334 of 436 menu
◀ ▶

Лямбда как аргумент в C#

Параметр локальной функции может принимать лямбду. Тип параметра пишут как Func или Action. Внутри функции такой аргумент вызывают как обычную функцию:

int ApplyTwice(int value, Func<int, int> fn) { int first = fn(value); return fn(first); } Func<int, int> add1 = (int n) => n + 1; Console.WriteLine(ApplyTwice(3, add1));

Лямбда без аргументов подходит для отложенного действия. Функция может вызвать переданный блок один или несколько раз:

void RunSafe(Action fn) { Console.WriteLine("begin"); fn(); Console.WriteLine("end"); } Action work = () => Console.WriteLine("work"); RunSafe(work);

Напишите функцию Combine с двумя целыми и параметром Func<int, int, int> fn. Передайте лямбду умножения двух чисел. Выведите результат Combine(6, 7).

Напишите функцию RepeatAction: целое times и параметр Action fn. Тело лямбды должно выполниться столько раз, сколько задано в times. Проверьте выводом "tick" три раза.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить