- vừa được xem lúc

Nên sử dụng IDisposable trong C# ?

0 0 14

Người đăng: Long Tiến

Theo Viblo Asia

Trong C#, bạn nên kế thừa interface IDisposable cho một class khi class đó sử dụng tài nguyên không quản lý như tệp tin, socket, cơ sở dữ liệu, hoặc bất kỳ tài nguyên nào cần được giải phóng một cách rõ ràng và đúng đắn sau khi không còn cần sử dụng nữa. Interface IDisposable định nghĩa một phương thức Dispose() mà bạn có thể triển khai để thực hiện việc giải phóng tài nguyên này.

Sử dụng IDisposable là một phần của mô hình quản lý tài nguyên trong C#, giúp tránh rò rỉ tài nguyên và đảm bảo rằng tài nguyên sẽ được giải phóng đúng cách khi không còn cần sử dụng nữa.

Dưới đây là một ví dụ đơn giản về cách triển khai IDisposable cho một class:

using System; public class MyClass : IDisposable
{ private bool disposed = false; // Constructor public MyClass() { // Khởi tạo và cấp phát tài nguyên không quản lý ở đây } // Phương thức Dispose để giải phóng tài nguyên public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { if (!disposed) { if (disposing) { // Giải phóng tài nguyên quản lý ở đây (nếu có) } // Giải phóng tài nguyên không quản lý ở đây disposed = true; } } // Destructor (finalizer) ~MyClass() { Dispose(false); }
}

Trong ví dụ trên, bạn có thể triển khai phương thức Dispose để giải phóng tài nguyên không quản lý của class của bạn. Bạn cũng nên triển khai destructor (finalizer) để đảm bảo rằng tài nguyên không quản lý sẽ được giải phóng trong trường hợp class không được Dispose một cách rõ ràng.

Khi bạn sử dụng một instance của class này, bạn nên gọi phương thức Dispose hoặc sử dụng một khối using để đảm bảo rằng tài nguyên sẽ được giải phóng đúng cách:

using (var myObject = new MyClass())
{ // Sử dụng myObject ở đây
} // Khi khối using kết thúc, Dispose() sẽ được gọi tự động.

Nhớ luôn gọi Dispose để giải phóng tài nguyên khi bạn đã hoàn thành việc sử dụng class có IDisposable.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Các loại tham chiếu Nullable trong C# (Phần 1)

1. Giới thiệu. C# 8.0 giới thiệu kiểu tham chiếu nullable và kiểu tham chiếu non-nullable cho phép bạn đưa ra các lựa chọn quan trọng về thuộc tính cho các biến kiểu tham chiếu:.

0 0 52

- vừa được xem lúc

Command pattern qua ví dụ !

Command pattern là gì . Command pattern khá phổ biến trong C #, đặc biệt khi chúng ta muốn trì hoãn hoặc xếp hàng đợi việc thực hiện một yêu cầu hoặc khi chúng ta muốn theo dõi các hoạt động. Hơn nữa, chúng ta có thể hoàn tác tác chúng. .

0 0 192

- vừa được xem lúc

Hiểu Liskov Substitution Principle qua ví dụ !

Liskov Substitution Principle là gì . Nguyên tắc đóng mở xác đinh rằng các instance của lớp con có thể thay thế được instance lớp cha mà vẫn đảm bảo tính đúng đắn của chương trình.

0 0 36

- vừa được xem lúc

Creating custom Controls Wpf

Introduction. Wpf/winforms provides various controls like Buttons, Textbox, TextBlock, Labels etc.

0 0 55

- vừa được xem lúc

[P1] Chọn công nghệ nào để xây dựng website?

Hiện nay nhu cầu phát triển website, app tăng rất cao do xu hướng "số hóa 4.0" trong và ngoài nước.

0 0 85

- vừa được xem lúc

Kiểu dữ liệu trong C#

Dẫn nhập. Ở bài BIẾN TRONG C# chúng ta đã tìm hiểu về biến và có một thành phần không thể thiếu khi khai báo biến – Đó là kiểu dữ liệu.

0 0 36