Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Меню
Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад

Как работает замыкание (closure) в C#, когда в лямбду передаётся внешняя переменная (например, counter)?

Проверяет знание механизма capture переменных в лямбдах и жизни этих переменных.

Короткий ответ

При замыкании лямбда «захватывает» внешнюю переменную по ссылке, а не её значение. Компилятор создаёт скрытый класс (closure class) с полем counter; все лямбды, использующие counter, ссылаются на одно поле этого объекта. Переменная живёт до тех пор, пока жива лямбда, и изменения в одной лямбде видны в другой.

Длинный ответ

Зарегистрироваться

Развернутый ответ доступен только зарегистрированным пользователям.

Уровень

  • Рейтинг:

    2

  • Сложность:

    5

Навыки

  • C#

    C#

Ключевые слова

#closure

#capture

#lambda

#external variable

Подпишись на C# Developer в телеграм