Một tuyên bố using
phải lúc nào cũng tốt hơn vì ...
- bạn không thể quên gọi
Dispose()
, thậm chí là mã phát triển thành đường dẫn mã khác nhau
Dispose()
được gọi thậm chí nếu có một ngoại lệ. Nó cũng kiểm tra null
trước khi gọi Dispose()
, có thể hữu ích (giả sử bạn không chỉ gọi số new
).
Một không rõ ràng (đối với tôi, dù sao) lừa với using
là làm thế nào bạn có thể tránh làm tổ quá mức khi bạn có nhiều đối tượng dùng một lần:
using (var input = new InputFile(inputName))
using (var output = new OutputFile(outputName))
{
input.copyTo(output);
}
Các VS đang formatter sẽ rời khỏi hai câu lệnh bắt đầu trong cùng một cột.
Trong thực tế, trong một số trường hợp, bạn thậm chí không cần phải lặp lại các tuyên bố sử dụng ...
using (InputFile input1 = new InputFile(inputName1), input2 = new InputFile(inputName2))
Tuy nhiên, các hạn chế đối với tuyên bố nhiều biến trên cùng một dòng áp dụng ở đây như vậy các loại phải giống nhau và bạn không thể sử dụng loại ẩn var.
Nguồn
2009-06-23 19:36:59
Cảm ơn bạn! Đó chỉ là loại câu trả lời tôi đang tìm kiếm. – mkelley33
Một điểm bổ sung nhỏ mà không ai đề cập là sử dụng "sử dụng" ngăn bạn vô tình biến đổi nội dung của biến "ctx" sau khi khởi tạo nhưng trước khi xử lý. Bạn không muốn vô tình vứt bỏ một đối tượng khác với đối tượng bạn đã tạo. –