C# 中的托管代码与非托管代码
csharpprogrammingserver side programming更新于 2025/8/12 9:07:17
非托管代码
不受 CLR 控制的应用程序为非托管代码
非安全代码或非托管代码是使用指针变量的代码块。
unsafe 修饰符允许在非托管代码中使用指针。
让我们看一个示例 −
示例
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();
}
托管代码
托管代码是指由公共语言运行时 (CLR) 管理执行的代码。CLR 获取托管代码并将其编译为机器码。之后,代码被执行。这里的运行时,即 CLR,提供自动内存管理、类型安全等功能。
托管代码是用运行在 .NET 之上的高级语言编写的。例如 C#、F# 等。用任何此类语言及其编译器编译的代码都不会生成机器码。但是,您将获得由运行时编译和执行的中间语言代码。
C/C++ 代码(称为"非托管代码")不具备此权限。程序以二进制形式运行,由操作系统加载到内存中。其余部分由程序员处理。

