Sự khác biệt giữa dispose () và Finalize ()

Sự khác biệt chính - vứt bỏ () so với hoàn thiện ()
 

Các sự khác biệt chính giữa dispose () và Finalize () là thế vứt bỏ () phải được lập trình viên gọi một cách rõ ràng trong khi phần cuối () được trình thu gom rác gọi ra trước khi phá hủy đối tượng.

Vứt bỏ () là một phương thức để đóng hoặc giải phóng các tài nguyên không được quản lý như các tệp, các luồng được giữ bởi một đối tượng. Hoàn thiện là một phương thức để thực hiện các hoạt động dọn dẹp trên các tài nguyên không được quản lý được giữ bởi đối tượng hiện tại trước khi đối tượng bị phá hủy.

NỘI DUNG

1. Tổng quan và sự khác biệt chính
2. Vứt bỏ ()
3. Hoàn thiện là gì ()
4. Điểm tương đồng giữa dispose () và Finalize ()
5. So sánh cạnh nhau - vứt bỏ () so với hoàn thiện () ở dạng bảng
6. Tóm tắt

Vứt bỏ là gì ()?

Một trong những lợi thế quan trọng nhất của .NET framework là nó cung cấp bộ sưu tập rác tự động. Nó tự động giải phóng bộ nhớ của các đối tượng không được sử dụng. Trong các ngôn ngữ lập trình như C và C ++, lập trình viên phải tự mình xử lý việc quản lý bộ nhớ. Nhưng trong các ngôn ngữ như C # được xây dựng trên .NET framework cung cấp trình thu gom rác. Nó giúp quản lý bộ nhớ. Nó không thể được sử dụng để giải phóng các tài nguyên bộ nhớ không được quản lý. Phương thức dispose () có thể được sử dụng để đạt được nhiệm vụ này.

Phương thức dispose () có thể được sử dụng để giải phóng các tài nguyên như kết nối cơ sở dữ liệu, trình xử lý tệp, v.v. Phương thức này không được gọi tự động. Do đó, lập trình viên nên thực hiện phương pháp này. Ngay khi phương thức này được gọi, bộ nhớ cho tài nguyên không được quản lý cụ thể sẽ được giải phóng. Phương thức này được khai báo trong giao diện Có thể nhận dạng.

Hoàn thiện là gì ()?

Phương thức hoàn thiện chỉ được gọi bởi trình thu gom rác khi tham chiếu đến một đối tượng không được sử dụng thêm. Phương pháp này được gọi ngay trước khi phá hủy đối tượng. Phương pháp này được thực hiện với sự trợ giúp của hàm hủy. Phương thức hoàn thiện được định nghĩa trong lớp java.lang.object. Phương pháp này được tuyên bố là được bảo vệ. Nó không được tuyên bố là công khai để tránh truy cập bởi các lớp khác. Nhìn chung, phương thức hoàn thiện có thể giảm thiểu hiệu năng của chương trình vì nó không giải phóng bộ nhớ ngay lập tức.

Sự giống nhau giữa dispose () và Finalize () là gì?

  • Cả dispose () và Finalize () đều có thể được sử dụng để giải phóng bộ nhớ được phân bổ cho tài nguyên không được quản lý.

Sự khác biệt giữa dispose () và Finalize () là gì?

vứt bỏ () vs hoàn thiện ()

Vứt bỏ () là một phương thức để đóng hoặc giải phóng các tài nguyên không được quản lý như các tệp, các luồng được giữ bởi một đối tượng. Hoàn thiện là một phương thức để thực hiện các hoạt động dọn dẹp trên các tài nguyên không được quản lý được giữ bởi đối tượng hiện tại trước khi đối tượng bị phá hủy.
 Mục tiêu
Phương thức xử lý được sử dụng để giải phóng các tài nguyên không được quản lý khi nó được gọi. Phương thức hoàn thiện được sử dụng để giải phóng các tài nguyên không được quản lý trước khi đối tượng bị phá hủy.
Giao diện được xác định hoặc lớp
Vứt bỏ () được định nghĩa trong giao diện IDis Dùng giao diện. Finalize () được định nghĩa trong lớp java.lang.object.
 Phương thức gọi
Phương thức xử lý được gọi bởi lập trình viên. Phương thức hoàn thiện được gọi bởi trình thu gom rác.
Chỉ định truy cập
Phương pháp xử lý là công khai. Phương pháp hoàn thiện được bảo vệ.
Tốc độ
Phương thức xử lý được gọi ngay lập tức. Phương thức hoàn thiện được gọi chậm.
Hiệu suất
Việc xử lý sẽ không giảm thiểu hiệu suất của chương trình. Phương pháp hoàn thiện có thể giảm thiểu hiệu suất của chương trình.

Tóm tắt - vứt bỏ () so với hoàn thiện ()

Bài viết này thảo luận về sự khác biệt giữa các phương pháp xử lý và hoàn thiện trong C #. Sự khác biệt giữa dispose () và Finalize () là ở chỗ, dispose () phải được lập trình viên gọi một cách rõ ràng trong khi Finalize () được gọi bởi trình thu gom rác trước khi phá hủy đối tượng.

Tài liệu tham khảo:

1. Thực hiện Hoàn thiện và Loại bỏ để Dọn dẹp Tài nguyên không được quản lý. Có sẵn ở đây  
2.Sarma, Nitya. Quay trở lại vấn đề cơ bản - Vứt bỏ Vs Finalize. Góc C #. Có sẵn ở đây  

Hình ảnh lịch sự:

1.'Csharp Logo'By Andres15alvarez - Công việc riêng, (CC BY-SA 4.0) qua Commons Wikimedia