Chcę tylko wiedzieć, czy dzwonienie returnwewnątrz usingbloku 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 returnwyskakuje 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