C# 基础——CLR、托管代码及非托管代码

应用程序的类型

  1. 使用.net的编程语言(C#、F#、VB)创建的应用程序,都会被编译器编译成中间语言IL语言,在CLR(公共语言运行时)中运行。

    比如:控制台程序(Console)、窗口应用程序(winform、wpf),Web应用程序:ASP.NET MVC、Web API等。

  2. 非.net编程语言编写的程序,比如C\C++\Java\Go等语言开发的应用程序,比如Excel、QQ、Skype等

托管代码

在 CLR 完全控制下运行的代码在 .NET 中称为托管代码。

非托管代码

不在 CLR 控制下运行的代码(exe,Web app)在 .NET 中称为非托管代码。

比如:Skype,PowerPoint,MicrosoftExcel这些在非网络环境运行时就会在他们自己的环境运行

CLR的功能及作用

语言互操作性、自动内存管理、异常处理机制、代码访问安全性等。

代码的运行过程

运行过程