不受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)提供自动内存管理,类型安全性等。
托管代码使用在.NET之上运行的高级语言编写。可以是C#,F#等。使用任何一种语言使用其编译器编译的代码都不会生成机器代码。但是,您将获得由运行时编译和执行的中间语言代码
C / C ++代码(称为“非托管代码”)没有该特权,该程序是二进制文件,由操作系统加载到内存中,剩下的就是程序员必须照顾的问题。