1、首先我们先来说一下“CLI”和“IL”这两个概念。
a.CLI(全称:CommonLanguageInfrastruct),当C#程序运行在Microsoft.NETFramework上时,CLI作为操作系统的必备组件包括
CLR(全称:CommonLanguageRuntime)虚拟执行系统和一组统一的泛型。
b.IL(全称:IntermediateLanguage)是中间语言,也称为MSIL。 所有 Microsoft.NET 源代码(任何语言)都编译为 IL。
2、流程:
aC#源文件被编译成符合CLI规范的中间语言IL。 IL代码和资源(例如:位图)一起作为程序集存储在C盘上,扩展名为“.exe”或“.dll”;
(总结:汇编=IL代码+资源)
b. 执行C#程序源码要编译嘛源码要编译嘛,程序集将被加载到CLR中。 CLR执行即时编译JIT(全称:Just-in-timecompilation)将IL代码转换为本机机器语言。
(JIT的基本思想:只在需要的时候按需要的数量生产需要的产品)
3.给出两个概念:
CLR执行的代码称为“托管代码”; (这里指的是:IL代码)
编译为特定系统的本机机器语言称为:“非托管代码”。 (此处对应“托管代码”)