Câu hỏi phỏng vấn C#
Câu hỏi

So sánh sự khác nhau giữa các lớp TraceDebug trong C# là gì?

Câu trả lời

Trong C#, Dispose, Destructor (hay còn gọi là finalizer) và Finalize đều liên quan đến quản lý tài nguyên và dọn dẹp tài nguyên không quản lý khi một đối tượng không còn được sử dụng nữa. Tuy nhiên, chúng có những khác biệt quan trọng về cách thức hoạt động và mục đích sử dụng:

Dispose

  • Dispose là một phương thức của interface IDisposable. Interface này cung cấp một cơ chế chuẩn để dọn dẹp tài nguyên không quản lý, như file handles hoặc kết nối cơ sở dữ liệu.
  • Khi một class triển khai IDisposable, bạn cần cài đặt phương thức Dispose để giải phóng tài nguyên không quản lý một cách rõ ràng.
  • Dispose phải được gọi một cách thủ công trong code, hoặc sử dụng cấu trúc using để đảm bảo rằng Dispose được gọi tự động khi đối tượng ra khỏi phạm vi của using.

Destructor (Finalizer)

  • Destructor (trong C# thường được gọi là finalizer) là một phương thức đặc biệt được định nghĩa trong class để dọn dẹp tài nguyên trước khi đối tượng được thu gom rác (garbage collected).
  • Destructor được định nghĩa bằng cách sử dụng dấu tilde (~) theo sau là tên của class. C# không cho phép định nghĩa nhiều hơn một destructor trong một class.
  • Destructor được gọi tự động bởi bộ thu gom rác của .NET Framework và không thể được gọi trực tiếp trong code....
middle

middle

Gợi ý câu hỏi phỏng vấn

middle

Sự khác nhau giữa ErrorException trong C# là gì?

senior

Giải thích sự khác biệt giữa SelectWhere trong C#?

senior

Marshalling trong C# là gì và tại sao chúng ta cần nó?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào