Back to questions
Middle+
7
Когда происходит замыкание (closure)?
Companies where asked
Gravilink
Answer from AI
sobes.tech AI
В C# замыкание (closure) происходит, когда лямбда-выражение или анонимный метод захватывает переменные из внешнего контекста, и эти переменные сохраняются и доступны даже после выхода из области видимости, где они были объявлены.
Например:
Func<int> CreateCounter()
{
int count = 0;
return () => ++count;
}
var counter = CreateCounter();
Console.WriteLine(counter()); // 1
Console.WriteLine(counter()); // 2
Здесь лямбда захватывает переменную count, и она сохраняет своё состояние между вызовами. Замыкание происходит в момент создания лямбды, когда она «захватывает» внешние переменные.