2010-03-08 30 views
9

Tôi hiểu khái niệm và lý do đằng sau việc sử dụng câu lệnh sử dụng, và tôi sử dụng nó với những thứ như tài nguyên tập tin và kết nối từ xa, tôi đã tự hỏi liệu thực hành tốt là sử dụng câu lệnh sử dụng với các biểu mẫu và hộp thoại WinForm không?Sử dụng câu lệnh sử dụng với WinForms ... Thực hành tốt?

using (MyDialog dlg = new MyDialog()) 
{ 
    if (dlg.ShowDialog() == EDialogResult.OK) 
    { 
     // Do Something 
    } 
} 

Cảm ơn!

+0

Điểm tốt. Những gì là overheard của gói tất cả mọi thứ trong try/catch/cuối cùng khối? –

Trả lời

7

Chỉ với hộp thoại. Nhưng sau đó nó là một thực hành rất tốt.

Bạn sẽ thấy rằng nó không hoạt động xung quanh Show(), bởi vì using(){} chỉ có thể được sử dụng bên trong 1 phương pháp và bạn không bao giờ muốn đóng lại ngay sau Show().

+0

Tất nhiên điều đó có ý nghĩa liên quan đến việc chỉ sử dụng với các hộp thoại. :) –

+0

Tôi không hiểu tại sao bạn cần Dispose với ShowDialog trong khi với Show bạn không .. tạo ra một số mâu thuẫn trong mã của tôi mỗi lần. tôi thường cũng thêm một sử dụng xung quanh ShowDialog, nhưng chỉ để làm cho hồ sơ của tôi không liệt kê nó như là ví dụ dùng một lần mà đã không được xử lý. là có một lý do thực sự tại sao nó nên được xử lý? – stmax

+2

@stmax nó phụ thuộc vào phạm vi của biểu mẫu được hiển thị. ShowDialog sẽ 'chặn' cho đến khi biểu mẫu được đóng lại để khối sử dụng sẽ không kết thúc cho đến sau khi biểu mẫu đã đóng. Hiển thị mặt khác trả về 'ngay lập tức', do đó bạn sẽ kết thúc xử lý một đối tượng vẫn còn sử dụng. –

Các vấn đề liên quan