Khi bạn gọi Close
trên StreamWriter
hoạt động, nó không thể viết thêm bất kỳ mã nào vào luồng (vì nó đã bị đóng). Để mở một luồng khác, bạn phải tạo một phiên bản mới của StreamWriter
vì không có phương thức 'Mở'.Điểm của các nhà soạn nhạc có Close() và Dispose() là gì?
Câu hỏi của tôi là, có điểm gì trong việc có Close
và Dispose
khi bạn không thể sử dụng bất kỳ thứ gì ngoài Dispose
sau khi đóng luồng?
Tôi có thể hiểu nếu có chức năng Open
, tức là bạn có thể đóng một tệp rồi mở một tệp khác bằng cùng một số StreamWriter
. Nhưng vì chỉ có Close
và bạn không thể sử dụng bất cứ thứ gì ngoài Dispose
sau đó, tại sao không chỉ loại bỏ Close
và có Dispose
đóng luồng cơ bản là hành động đầu tiên của nó?
Tôi nhận được rằng Dispose
đến từ IDisposeable
và tất cả những điều đó. Những gì tôi muốn biết là lý do tại sao Close
là cần thiết cụ thể khi Dispose
xuất hiện để gọi Close
.
Theo như tôi thấy, không có khả năng để mở dòng khác với cùng StreamWriter
, không có điểm trong có Close
khi bạn không có lựa chọn nào khác để Dispose
sau đó vì tất cả các phương pháp khác trở nên vô dụng.
Tại sao là StreamWriter
những người đang gặp phải Close
khi họ có thể hợp nhất Close
và Dispose
vào một phương pháp đơn lẻ?
Dường như bạn có nó ngược - 'Close' gọi' Vứt bỏ', không phải theo cách khác. –
'Đóng' các cuộc gọi' Vứt bỏ', đóng tài nguyên luồng cơ bản. –