Важные темы C#

Делегаты и лямбда-выражения в C#

В этом уроке вы передадите функцию как параметр в другой метод с помощью делегата Func и лямбда-выражения.

Введение

Делегат (delegate) - это тип, представляющий метод, который позволяет передавать поведение как значение. Лямбда-выражение - краткий способ записать функцию прямо на месте, например (a, b) => a * b. Вместе они позволяют писать гибкие методы, которые получают способ обработки данных извне.

Тип Func<int, int, int> представляет функцию, которая принимает два целых числа и возвращает целое. Метод Apply не знает вычисление заранее, он лишь вызывает operation(left, right). Если передать ему лямбду (left, right) => left * right, Apply выполнит умножение и вернёт 42.

Пример на C#, который можно запустить

C#
Запустить код →
Program.cs
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

Практика с отладчиком

Поставьте точку останова на важное присваивание или условие, нажмите Debug и посмотрите локальные значения, прежде чем перейти к следующей строке.

Попрактикуйтесь на задаче

Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.

Все задачи