Tôi đang xem một đồng nghiệp # mã c hôm nay và thấy như sau:Câu lệnh C# có thể được viết mà không có dấu ngoặc nhọn không?
using (MemoryStream data1 = new MemoryStream())
using (MemoryStream data2 = new MemoryStream())
{
// Lots of code..........
}
Tôi đã luôn luôn nhìn thấy báo cáo kết quả using
theo sau là một cặp dấu ngoặc nhọn mà xác định phạm vi của cuộc sống đối tượng. Đồng nghiệp của tôi đã viết mã cho biết rằng các dấu ngoặc nhọn cho câu hỏi data1
using
là không cần thiết và mã đã thực hiện tương tự như khi chúng hiện diện và lồng nhau câu lệnh data2
using
. Vì vậy, những gì sẽ xảy ra khi niềng răng xoăn được ommitted?
Chỉ cần 2 xu của tôi - Trong khi bạn "có thể" làm điều này, như được minh họa bằng câu trả lời, tôi cho rằng bạn không nên làm điều đó vì mục đích dễ đọc. Đối với tôi, nó giống như gói if/else/while/lock/etc. khối trong niềng răng - ngay cả khi chúng không cần thiết, nó dễ đọc hơn nhiều. –
Theo ý kiến của tôi, các câu lệnh 'using' được xếp chồng lên nhau, như trên, có thể đọc được ** nhiều hơn so với các câu lệnh' using' lồng nhau. Đặc biệt trong trường hợp bạn đang kết hợp với nhau 3-4 Streams/StreamReaders để thực hiện một bộ hoạt động đơn lẻ. –
@ Jelel: Có thể giống như bất cứ điều gì khác, tình hình cụ thể nên được xem xét.Nếu đó chỉ là hai, ý kiến của tôi là hoàn toàn làm tổ họ bằng niềng răng. Nếu chúng ta đang nói 4 như bạn nói, có thể xếp chồng lên nhau là cách tiếp cận tốt hơn. Nhưng lần đầu tiên bạn cần truy cập dữ liệu1 trước khi tạo dữ liệu2, điều đó có nghĩa là thay đổi khả năng đọc của mã thay vì chỉ thêm một dòng mã. –