ฉันแค่อยากรู้ว่าวิธีการโทรreturnภายในusingบล็อกนั้นปลอดภัย / ดีไหม
สำหรับอดีต
using(var scope = new TransactionScope())
{
// my core logic
return true; // if condition met else
return false;
scope.Complete();
}
เรารู้ว่าในวงเล็บปีกกาสุดท้าย dispose()จะถูกเรียกออก แต่จะเกิดอะไรขึ้นในกรณีข้างต้นเนื่องจากreturnข้ามการควบคุมออกจากขอบเขตที่กำหนด (AFAIK) ...
- ฉัน
scope.Complete()ถูกเรียก? - และสำหรับ
dispose()วิธีการของขอบเขต
using{}ขอบเขตสิ้นสุดลงวัตถุที่เกี่ยวข้องจะถูกกำจัดออกreturnจะ "ทำลาย" ขอบเขต - ดังนั้นวัตถุจะถูกกำจัดตามที่คาดไว้