Как работает замыкание (closure) в C#, когда в лямбду передаётся внешняя переменная (например, counter)?
Что такое замыкания (closures)?
Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Рейтинг:
2
Сложность:
5
При замыкании лямбда «захватывает» внешнюю переменную по ссылке, а не её значение. Компилятор создаёт скрытый класс (closure class) с полем counter; все лямбды, использующие counter, ссылаются на одно поле этого объекта. Переменная живёт до тех пор, пока жива лямбда, и изменения в одной лямбде видны в другой.
Рейтинг:
2
Сложность:
6
Замыкания — это блоки кода, которые можно передавать и использовать позже. Они могут сохранять ссылки на переменные из окружающего контекста и часто используются в колбэках и обработке событий.