Код: Выделить всё
finallyРассмотрите следующие методы:
Код: Выделить всё
public int Test()
{
return 12;
}
public int Test2()
{
try
{
return 12;
}
finally
{
Console.WriteLine("Test");
}
}
При вызове Test2() будет ли выполняться Console.WriteLine внутри блокаfinally, даже если метод уже достигает возврата внутри try?
Теперь рассмотрим эту версию:
Код: Выделить всё
public int Test2()
{
try
{
return 12;
}
finally
{
return 23;
}
}
Если и try, и наконец содержат оператор return, какое значение фактически возвращается? Переопределяет ли возврат внутри блокаfinally возвращаемое значение из блока try?
Что я ожидаю понять:
- Точный порядок выполнения при возврате внутри try
- Всегда ли выполняется блокfinally
- (мой главный вопрос) Каково окончательное возвращаемое значение, когда оба блока содержат return
Подробнее здесь: https://stackoverflow.com/questions/798 ... -if-finall
Мобильная версия