Có nhiều chủ đề (a, b, c vv) về thực tế là Rõ ràng() mặt hàng ing trong container thành phần .NET không Vứt bỏ họ (bằng cách gọi Dispose (đúng).Điều khiển rõ ràng không thải bỏ chúng - rủi ro là gì?
thường xuyên nhất, IMHO, các thành phần Clear-ed không được sử dụng nữa trong việc áp dụng, vì vậy nó cần một cách rõ ràng được xử lý sau khi Xoá chúng từ container mẹ.
lẽ là một ý tưởng tốt mà phương pháp thu thập của Clear
đã có một bool tham số dispose
rằng khi trong sự thật cũng phân phối các yếu tố thu thập trước khi loại bỏ khỏi danh sách?
Nếu có một cuộc gọi để Vứt bỏ trong finalizer, họ sẽ nhận được xử lý. Nếu không có, thì có lẽ (nếu lập trình viên tuân theo các thực hành được chấp nhận) không có gì không được quản lý để vứt bỏ và nó an toàn để chỉ thu gom rác. –
@Aviad: Vấn đề mà phương pháp Vứt bỏ sẽ không bao giờ được gọi bởi GC, vì vậy bạn cần tự làm điều đó trước khi gọi Clear trên bộ sưu tập. – serhio
Ý của tôi là, nếu người lập trình của điều khiển không đặt cuộc gọi Dispose vào finalizer của nó (được gọi khi đối tượng được thu thập rác) - thì có lẽ không có gì để vứt bỏ. –