Logo vi.boatexistence.com

Kết thúc cuộc gọi có hủy bỏ cuộc gọi không?

Mục lục:

Kết thúc cuộc gọi có hủy bỏ cuộc gọi không?
Kết thúc cuộc gọi có hủy bỏ cuộc gọi không?
Anonim

Nếu bạn nắm giữ tài nguyên gốc, bạn triển khai cả Loại bỏ và Hoàn thiện, và cả hai đều gọi một phương thức chung giải phóng tài nguyên gốc. Những thành ngữ này thường được kết hợp với nhau thông qua một phương pháp Dispose (bool vứt bỏ) riêng tư, phương thức này Hủy bỏ các lệnh gọi bằng true và Finalize các lệnh gọi bằng false.

Khi nào sử dụng finalize so với Dispose?

Phương thức dispose () được sử dụng để giải phóng tài nguyên không được quản lý bất cứ khi nào nó được gọi. Phương thức finalize () được sử dụng để giải phóng tài nguyên không được quản lý trước khi đối tượng bị hủy. Phương thức dispose () sẽ được triển khai bất cứ khi nào có phương thức close ().

Sự khác biệt giữa phương pháp Loại bỏ và Hoàn thiện là gì?

Sự khác biệt chính giữa vứt bỏ và hoàn thiện là rằng phương thức xử lý phải được người dùng gọi một cách rõ ràngtrong khi, phương thức hoàn thiện được gọi bởi bộ thu gom rác, ngay trước đối tượng bị phá hủy.

Có sử dụng cuộc gọi Bỏ đi không?

Câu lệnh using đảm bảo rằng Dispose được gọi làngay cả khi một ngoại lệ xảy ra khi bạn đang gọi các phương thức trên đối tượng. Bạn có thể đạt được kết quả tương tự bằng cách đặt đối tượng bên trong khối try và sau đó gọi Dispose trong khối cuối cùng; trên thực tế, đây là cách trình biên dịch dịch câu lệnh using.

Tôi có nên gọi là Dispose Ckhông?

4 Câu trả lời. Quy tắc chung: nếu một lớp triển khai IDisposable, bạn nên luôn gọi phương thức Dispose ngay sau khi bạn sử dụng xong tài nguyên nàyTốt hơn nữa nên bọc nó trong một câu lệnh using để đảm bảo rằng phương thức Dispose sẽ được gọi ngay cả khi một ngoại lệ được ném ra: using (var reader=conn.

Đề xuất: