TGViewer
Григорий Дядиченко Григорий Дядиченко @dev_game · 2.66K subscribers
Post #1833 1.35K
И немного примеров по замыканию для понимания

Завершим тему замыкания полностью примерами.

1. Лямбда использует только свои параметры и локальные переменные внутри себя

Func<int, int> inc = x => x + 1;
Console.WriteLine(inc(10)); // 11
Console.WriteLine(inc.Target); // null (обычно), т.к. нечего захватывать


Почему нет замыкания: нет ссылок на переменные “снаружи”; всё, что нужно, приходит через параметр x.

2. Лямбда обращается только к static членам

Func<int, int> f = x => Math.Abs(x);
Console.WriteLine(f(-5)); // 5
Console.WriteLine(f.Target); // null (обычно)


Почему нет замыкания: Math.Abs — статический метод, ему не нужен объект/окружение.

3. Используется const (константа), а не переменная

const int k = 10;
Func<int, int> add = x => x + k;
Console.WriteLine(add(5)); // 15
Console.WriteLine(add.Target); // null (обычно)


Почему нет замыкания: const — не “переменная”, это значение, которое компилятор подставляет напрямую. Захватывать нечего.

4. Method group на статический метод

static int Square(int x) => x * x;
Func<int, int> sq = Square;
Console.WriteLine(sq(4)); // 16
Console.WriteLine(sq.Target); // null


Почему нет замыкания: делегат просто указывает на статический метод, окружение не нужно.

5. static-лямбда (C# 9+) — гарантирует отсутствие захват

Func<int, int> ok = static x => x + 1; // захват запрещён
int y = 10;
// Func<int, int> bad = static x => x + y; // ошибка компиляции: нельзя захватить y


Почему нет замыкания: ключевое слово static у лямбды запрещает захват внешних переменных и this. Если “захватить” всё же пытаешься — код не компилируется.


Наберем 50 🔥️️ могу сделать подборку примеров где замыкание часто появляется и составить пост с задачками и ответом под спойлером, чтобы вы могли себя проверить.

#интересное
  • 🔥 51
  • 😁 1
More from @dev_game
  1. Sep 25, 2026Meta VR Glasses Посмотрел кратко о чём речь. Вспомнил скупой слезой свой концепт. Будем по…
  2. Sep 23, 2026Чисто магия, что я теперь самостоятельно могу сделать такой пак + ролик к нему :) И мне нр…
  3. Sep 22, 2026🚀 Как запустить игровой стартап и применить бизнес-опыт в геймдеве? 🚀 Высшая школа бизне…
  4. Sep 21, 2026Эмоциональный окрас голоса Задумался над юмористическими форматами контента помимо познава…
  5. Sep 20, 2026Новый формат роликов https://youtube.com/shorts/sBWPJmyMqKg?si=GqUfUyLol_ahrRsK Возможно п…
  6. Sep 20, 2026Про мои текущие эксперименты То что я буду писать в этом посте думаю не так интересно прос…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →