Phương thức của tôi trả về ở nhiều điểm. Tôi xây dựng newData trong quá trình thực hiện cũng ở nhiều điểm. Bất kể nơi tôi trở về tôi cần phải lưu và lưu trữ kết quả xây dựng. Không bỏ lỡ "return" Tôi chỉ bao quanh mã với khối try-finally vì vậy bây giờ tôi chắc chắn rằng newData sẽ được lưu trữ.là tốt để sử dụng cố gắng cuối cùng chỉ để đảm bảo rằng một cái gì đó được thực hiện khi phương pháp kết thúc?
List<X> newData = new List<X>();
try
{
....
update newData
.....
return;
.....
....
update newData
....
update newData
return;
.....
return;
} finally
{
// copy newData to data
}
Nhưng tôi không bắt bất kỳ ngoại lệ nào và mã này không có ý định làm việc với ngoại lệ. Có thể chấp nhận được nói chung hoặc bạn có thể đề xuất một cách tiếp cận tốt hơn?
Có vẻ như bạn có thể sử dụng [báo cáo chuyển đổi] (http://msdn.microsoft.com/en-us/library/06tc147t%28v=vs.100%29.aspx). Tôi không hiểu tại sao bạn cần phải quay lại ngay lập tức. –
Chỉ chấp nhận được nếu nó hoạt động như dự định. Nếu nó không hoạt động, hãy thử tái cấu trúc nó thành các hàm nhỏ hơn. Nếu có, thỏa thuận lớn là gì? Tôi không thể đưa ra bất kỳ đề xuất cụ thể nào mà không thấy mã nguồn chi tiết hơn. – Flaise
Trừ khi ai đó kéo phích cắm, khối 'cuối cùng' được thực hiện trong mọi trường hợp và mã của bạn sẽ hoạt động như mong đợi; tuy nhiên, như những người khác đã chỉ ra, có những cách tốt hơn để cấu trúc mã của bạn. –