You are on page 1of 1

Unmanaged code" trong ngôn ngữ lập trình C# thường đề cập đến mã máy (machine

code) không được quản lý bởi Common Language Runtime (CLR). CLR là môi trường
thực thi trong .NET Framework, chịu trách nhiệm quản lý bộ nhớ và cung cấp các tính
năng như garbage collection (tự động giải phóng bộ nhớ không sử dụng) và exception
handling (xử lý ngoại lệ).

Ngược lại, "mã không quản lý" là mã máy trực tiếp thực thi bởi hệ điều hành mà không
thông qua CLR. Điều này thường được sử dụng khi cần tương tác trực tiếp với hệ thống
hoặc khi performance là ưu tiên hàng đầu.

Một số tình huống mà bạn có thể sử dụng mã không quản lý trong C# bao gồm:

1. Interop với mã nguồn không phải .NET: Khi bạn cần giao tiếp với thư viện
hoặc API được viết bằng ngôn ngữ khác không phải .NET, bạn có thể cần sử
dụng mã không quản lý.
2. Performance cao: Trong một số trường hợp, việc sử dụng mã không quản lý có
thể mang lại hiệu suất tốt hơn do không có overhead của CLR.
3. Điều khiển trực tiếp phần cứng: Khi cần truy cập trực tiếp vào tài nguyên phần
cứng, chẳng hạn như quyền truy cập vào thanh ghi CPU, bạn có thể cần sử dụng
mã không quản lý.

Để sử dụng mã không quản lý trong C#, bạn có thể sử dụng từ khóa unsafe. Dưới đây là
một ví dụ cơ bản:

csharpCopy code
class Program { static unsafe void Main() { int x = 10 ; // Sử dụng từ khóa unsafe để khai báo con trỏ int * ptr =
&x; // Sử dụng con trỏ để thay đổi giá trị của biến x *ptr = 20 ; Console.WriteLine(x); // Kết quả sẽ là 20 } }

Lưu ý rằng việc sử dụng mã không quản lý có thể tạo ra các vấn đề về an toàn và bảo
mật, vì vậy bạn cần cẩn thận khi sử dụng nó và đảm bảo rằng bạn đang làm việc trong
môi trường an toàn và kiểm soát được.

You might also like