Back to questions
СБЕР Тех
Junior — Middle
66
Объясните концепцию замыкания в программировании и как оно используется
Companies where asked
Answer from AI
sobes.tech AI
Замыкание — это функция, которая захватывает и запоминает переменные из окружающего контекста, даже после того, как этот контекст перестал существовать. В C# замыкания часто возникают при использовании лямбда-выражений или анонимных методов, которые обращаются к переменным из внешнего метода.
Пример:
Func<int> CreateCounter()
{
int count = 0;
return () => ++count; // лямбда захватывает переменную count
}
var counter = CreateCounter();
Console.WriteLine(counter()); // 1
Console.WriteLine(counter()); // 2
Здесь лямбда-функция сохраняет доступ к переменной count, даже после завершения метода CreateCounter. Это позволяет сохранять состояние между вызовами.
Использование замыканий полезно для создания функций с внутренним состоянием, обработки событий, отложенного выполнения и других сценариев, где нужно сохранить контекст.