Когда будет вызвана отложенная функция defer? При выходе из локального блока, при выходе из функции или при завершении приложения?

В C# ключевого слова defer нет, но если речь о конструкции defer из других языков (например, Go), то отложенная функция вызывается при выходе из текущей функции, в которой она объявлена.

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

Что ответить на собеседовании

В C# ключевого слова defer нет, но если речь о конструкции defer из других языков (например, Go), то отложенная функция вызывается при выходе из текущей функции, в которой она объявлена.

Подробный разбор

Ответ с пояснениями

В C# ключевого слова defer нет, но если речь о конструкции defer из других языков (например, Go), то отложенная функция вызывается при выходе из текущей функции, в которой она объявлена.

То есть, defer срабатывает при завершении функции, а не при выходе из локального блока или завершении всего приложения.

Если же говорить о C#, то аналогично можно использовать блок finally для выполнения кода при выходе из метода.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее