TGViewer
StepOne | Степан Минин StepOne | Степан Минин @steponeit · 3.27K subscribers
Post #266 2.2K
Статические анонимные функции

Оказывается, в C# 9 лямбды получили серьёзное обновление!

Штука настолько малоизвестная, что меня даже ни разу не спрашивали про неё на собесах!

Допустим, у вас есть следующий код с замыканием:

int y = 1;
Func<int, int> lambda = x => x + y;


Захват переменной y и всего внешнего окружения вызовет ненужные аллокации.

С помощью ключевого слова static можно запретить подобные ситуации.

Тогда, обновлённый код не скомпилируется:

int y = 1;
Func<int, int> lambda = static x => x + y;


Однако, если очень нужно иметь возможность использовать y, но при этом сохранять эффективность кода, то переменную просто надо сделать константой:

const int y = 1;
Func<int, int> lambda = static x => x + y;
  • 👍 19
  • 🤔 9
  • 🔥 4
  • 🐳 2
  • ❤ 1
More from @steponeit
  1. Sep 29, 2026Рассказал как автоматизировал сборку лексера компилятором для своего языка программировани…
  2. Sep 28, 2026Пошутил про джавистов в прямом эфире 😅 Шарпизм победил окончательно и бесповоротно!
  3. Sep 27, 2026Post #860
  4. Sep 25, 2026Рассказал как я добавил в HydraScript объекты и методы без классов и сделал протоколы. Стр…
  5. Sep 22, 2026Post #858
  6. Sep 21, 2026Post #857
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 →