Chcę tylko wiedzieć, czy dzwonienie return
wewnątrz using
bloku jest bezpieczne / dobre .
Na przykład.
using(var scope = new TransactionScope())
{
// my core logic
return true; // if condition met else
return false;
scope.Complete();
}
Wiemy, że w końcu najbardziej zakręcony aparat dispose()
zostanie odwołany. Ale co będzie w powyższym przypadku, skoro return
wyskakuje sterowanie poza podany zakres (AFAIK) ...
- Czy moje
scope.Complete()
wezwanie? - I tak w przypadku metody lunety
dispose()
.
using{}
zakres się skończy, odpowiednie obiekty zostaną usunięte,return
„zepsują” zasięg - więc obiekty zostaną usunięte zgodnie z oczekiwaniami