#Notes: Trong C#, có biết về interface IDisposible không?

 Trong .NET đưa ra một interface có tên là IDisposable (System.IDisposable).

Interface này chỉ có định nghĩa một phương thức Dispose();

Các lớp triển khai interface này chỉ việc định nghĩa nội dung phương thức này để giải phóng các tài nguyên chiếm giữ - khi đối tượng bị hủy.

Tại sao cần tự giải phóng tài nguyên?
Trong .NET hầu hết các loại tài nguyên là được quản lý bởi CLR của hệ thống .NET, nên các tài nguyên, đối tượng không còn tham chiếu đến nó sẽ tự động được CLR thu hồi (GC). Đó là những tài nguyên quản lý được bởi .NET CLR.
Tuy nhiên, vẫn có những loại tài nguyên mà CLR .NET không quản lý được như mở file,  stream file và các kết nối mạng hay kết nối đến database.
Với những loại tài nguyên này dotnet không tự giải phóng nó thế nào, nên bạn phải có một cơ chế chủ động làm việc này khi không còn dùng đến nữa.

Khi một lớp nào đó, triển khai giao diện IDisposable thì có thể dùng với using.
Hết lệnh using đối tượng sẽ tự động được gọi Dispose.

Share:

0 nhận xét