Делегаты и лямбда-выражения в C#
В этом уроке вы передадите функцию как параметр в другой метод с помощью делегата Func и лямбда-выражения.
Введение
Делегат (delegate) - это тип, представляющий метод, который позволяет передавать поведение как значение. Лямбда-выражение - краткий способ записать функцию прямо на месте, например (a, b) => a * b. Вместе они позволяют писать гибкие методы, которые получают способ обработки данных извне.
Тип Func<int, int, int> представляет функцию, которая принимает два целых числа и возвращает целое. Метод Apply не знает вычисление заранее, он лишь вызывает operation(left, right). Если передать ему лямбду (left, right) => left * right, Apply выполнит умножение и вернёт 42.
Пример на C#, который можно запустить
using System;
class Program
{
static int Apply(int left, int right, Func<int, int, int> operation)
=> operation(left, right);
static void Main()
{
int result = Apply(6, 7, (left, right) => left * right);
Console.WriteLine(result);
}
}
42Практика с отладчиком
Попрактикуйтесь на задаче
Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.
Все задачи