Junior — Middle
Explique le concept de fermeture en programmation et comment il est utilisé
sobes.tech IA
Réponse de l'IA
Замыкание — это функция, которая захватывает и запоминает переменные из окружающего контекста, даже после того, как этот контекст перестал существовать. В C# замыкания часто возникают при использовании лямбда-выражений или анонимных методов, которые обращаются к переменным из внешнего метода.
Пример:
Func<int> CreateCounter()
{
int count = 0;
return () => ++count; // лямбда захватывает переменную count
}
var counter = CreateCounter();
Console.WriteLine(counter()); // 1
Console.WriteLine(counter()); // 2
Здесь лямбда-функция сохраняет доступ к переменной count, даже после завершения метода CreateCounter. Это позволяет сохранять состояние между вызовами.
Использование замыканий полезно для создания функций с внутренним состоянием, обработки событий, отложенного выполнения и других сценариев, где нужно сохранить контекст.