托管代码是由 .NET Framework 中的 CLR(公共语言运行时)管理的代码。而非托管代码是由操作系统直接执行的代码。以下是托管代码和非托管代码之间的一些重要区别:

托管代码 非托管代码
由托管运行时环境执行或由 CLR 管理。 由操作系统直接执行。
为用 .NET Framework 编写的应用程序提供安全性。 不为应用程序提供任何安全性。
不会发生内存缓冲区溢出。 可能会发生内存缓冲区溢出。
提供垃圾收集、异常处理等运行时服务。 不提供垃圾收集、异常处理等运行时服务。
源代码是用称为 IL 或 MSIL 或 CIL 的中间语言编译的。 源代码直接编译成本地语言。
不提供对程序员的低级访问。 提供对程序员的低级访问。