Sự khác nhau giữa Dispose
, `Destr...
Sự khác nhau giữa Dispose
, `Destr...
Trong C#, Dispose
, Destructor
(hay còn gọi là finalizer), và Finalize
là các cơ chế liên quan đến việc dọn dẹp tài nguyên, nhưng chúng có những mục đích và cách sử dụng khác nhau:
Dispose
Dispose
là một phương thức của interface IDisposable
và được sử dụng để giải phóng tài nguyên không quản lý một cách rõ ràng và tự động. Lập trình viên chịu trách nhiệm gọi Dispose
khi tài nguyên không còn cần thiết.Dispose
thường được sử dụng trong mô hình quản lý tài nguyên được gọi là "Dispose Pattern", nơi bạn cung cấp một cách để người dùng lớp của bạn có thể gọi Dispose
để giải phóng tài nguyên ngay lập tức.Dispose
thường được gọi bằng cách sử dụng câu lệnh using
, đảm bảo rằng Dispose
sẽ được gọi tự động khi khối using
kết thúc.Destructor
(Finalizer)Destructor
trong C# (đôi khi được gọi là finalizer) là một phương thức đặc biệt được định nghĩa trong lớp để dọn dẹp tài nguyên khi đối tượng sắp bị hủy bởi bộ thu gom rác (Garbage Collector - GC). Cú pháp của destructor là ~ClassName()
.Dispose
không được gọi. Tuy nhiên, không thể biết chính xác khi nào destructor sẽ được gọi vì nó phụ thuộc vào bộ thu gom rác.senior
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào