Unmanaged Code
- Application ที่ไม่อยู่ภายใต้การควบคุมของ CLR (Common Language Runtime) คือ Unmanaged Code
- Unsafe Code หรือ Unmanaged Code คือ Code Block ที่ใช้ Pointer Variable
- Unsafe Modifier อนุญาตให้ใช้ Pointer ใน Unmanaged Code
ตัวอย่าง:
static unsafe void Main(string[] args) {
int var = 20;
int* p = &var;
Console.WriteLine("Data is: {0} ", var);
Console.WriteLine("Address is: {0}", (int)p);
Console.ReadKey();
}
Managed Code
Managed Code คือ Code ที่การ Execute ถูกจัดการโดย Common Language Runtime (CLR) CLR รับ Managed Code คอมไพล์เป็น Machine Code แล้ว Execute Runtime (CLR) จัดเตรียม Automatic Memory Management, Type Safety, ฯลฯ
Managed Code เขียนด้วย High-level Languages ที่รันบน .NET เช่น C#, F# Code ที่คอมไพล์ด้วย Compiler ของภาษาเหล่านี้ จะไม่ได้ Machine Code โดยตรง แต่ได้ Intermediate Language (IL) Code ที่ถูก Compile และ Execute โดย Runtime
C/C++ Code ที่เรียกว่า "Unmanaged Code" ไม่มีสิทธิประโยชน์นี้ โปรแกรมอยู่ใน Binary ที่โหลดโดย OS เข้า Memory ส่วนที่เหลือ Programmer ต้องดูแลเอง