Выбор ответа Middle Исключения обновлено
return в try и finally
Вопрос
Что вернёт метод?
static int Get()
{
int x = 1;
try { return x; }
finally { x = 2; }
}
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: 1. При return x в try значение 1 уже вычислено и сохранено для возврата. finally выполняется, меняет локальную x на 2, но на сохранённое значение это не влияет.
Варианты ответа
231правильный ответ- Ошибка компиляции: нельзя менять переменную в finally
Разбор
При return x в try значение 1 уже вычислено и сохранено для возврата. finally выполняется, меняет локальную x на 2, но на сохранённое значение это не влияет. Для int вернётся 1. Если бы x был ссылкой на изменяемый объект, изменения его полей в finally были бы видны. return внутри finally в C# запрещён, а изменение переменных разрешено.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.