Tại sao hàm destructor tự chạy khi app chưa kết thúc

Constructor thì em hiểu rồi, nhưng em chỉ mới new ra đối tượng thôi, chưa tác động gì cả,object nó vẫn còn lưu trong heap mà, tại sao destructor đã chạy rồi? Hay là do cái Trình auto gom rác ạ? Em cảm ơn!

Chương trình bạn tạo ra có entry point là hàm Main, trong hàm Main bạn kêu chương trình là tạo cho tui biến d chứa đối tượng dog và… hết. Bạn không cho chương trình bạn chạy tiếp gì hết thì tức là chương trình đã chạy xong, GC vô gom rác, thấy thằng d nên gọi destructor.

6 Likes

Thanks anh đã phản hồi, anh có thể cho em xin một ví dụ về app chạy live liên tục mà mà Garbage Collection không xoá ngay khi object d vừa tạo ra không vì e chạy trong console hết dòng cuối cùng là nó đóng chương trình luôn r.

Bạn có thể thêm dòng Console.ReadLine() vào cuối hàm Main, ấn Enter để kết thúc chương trình

6 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?