CLR概述
CLR(Common Language Runtime,CLR)公共语言运行时,也叫公共语言运行库。
.Net FrameWork和CLR的关系:
.Net FrameWork 包含CLR和.NET Framework 类库。
- CLR可以看作是在执行时管理代码的代理。提供内存管理,垃圾回收,线程管理等机制。此时运行的代码叫做托管代码,不以运行时为目标的代码叫做非托管代码。 与Java的JVM类似。
- 类库是一个综合性的面向对象的可重用类型集合。
C#语言的运行过程:
- 非托管环境中:如C/C++的代码有编译和链接两个过程。先把源文件编译生成目标代码,再把目标代码与程序中调用的库函数代码链接起来,就可以生成执行文件(.exe)格式。
- 在托管环境中: C#先通过编译器先把源代码文件编译成中间代码(IL,)。然后把优化的中间代码翻译成目标代码,最后运行时候JIT将IL翻译成机器码。