Trang Chủ Phát triển Hoàn thiện là gì? - định nghĩa từ techopedia

Hoàn thiện là gì? - định nghĩa từ techopedia

Mục lục:

Anonim

Định nghĩa - Hoàn thiện nghĩa là gì?

Finalize là một phương thức đối tượng chứa mã cần thiết để giải phóng các tài nguyên không được quản lý và thực hiện các hoạt động dọn dẹp trước khi thu gom rác (GC).


Phương thức hoàn thiện được sử dụng để dọn sạch các tài nguyên không được .NET quản lý. Mặc dù .NET framework được thiết kế để giải phóng các tài nguyên được quản lý bằng cách thực hiện ngầm các tác vụ quản lý bộ nhớ, các tài nguyên ứng dụng không được quản lý - như xử lý tệp và kết nối cơ sở dữ liệu - phải được phát hành rõ ràng.

Techopedia giải thích Hoàn thiện

Mặc dù hoàn thiện được thiết kế để được gọi ngầm bởi GC, phương thức xử lý có thể được gọi rõ ràng bằng mã người dùng để giải phóng tài nguyên.


Finalize tương tự như các hàm hủy C ++ truyền thống, vì mỗi cái chịu trách nhiệm giải phóng tài nguyên đối tượng. Các hàm hủy C ++ được thực thi ngay lập tức khi một đối tượng đi ra khỏi phạm vi, trong khi hoàn thành được gọi trong quá trình dọn dẹp đối tượng tại GC. Trong C #, quyết toán không thể được gọi trực tiếp hoặc ghi đè. Nếu một hàm hủy được khai báo, nó được chuyển đổi thành phương thức hoàn thiện khi chương trình được biên dịch.


Trong quá trình hoàn thiện, phải tránh phân bổ bộ nhớ hoặc gọi các phương thức ảo. Phạm vi hoàn thiện cần được bảo vệ để nó chỉ được truy cập trong cùng một lớp hoặc lớp dẫn xuất của nó. Hoàn thiện không nên tham khảo bất kỳ đối tượng khác. Trong C #, việc gọi hoàn thiện trực tiếp trên một đối tượng không phải là lớp cơ sở của nó là một hoạt động không hợp lệ. Mã quyết toán nên tối thiểu mà không có bất kỳ cuộc gọi nào có khả năng chặn chuỗi cuộc gọi. Khi hoàn thành được gọi bởi một luồng chuyên dụng, mã của nó không nên sử dụng lưu trữ cục bộ của luồng hoặc bất kỳ kỹ thuật nào yêu cầu ái lực của luồng.


Sử dụng hoàn thiện như một cơ chế dự phòng để giải phóng bộ nhớ hoặc tài nguyên không được quản lý là điều cần thiết, do thiếu tính quyết định và ảnh hưởng đến hiệu suất của GC.

Định nghĩa này được viết trong bối cảnh của .NET
Hoàn thiện là gì? - định nghĩa từ techopedia