1.在讲解 C# 程序的编译与执行之前,首先了解以下两个概念,以便充分理解C# 程序的运行。
CLI--Common Language Infrastructure 的简称,C# 程序在Microsoft .NET Framework 上运行时,
它是 Windows 的一个必要组件,包括一个称为公共语言运行库(CLR,在第1章中对该内容有过详细讲解)的虚拟执行系统和一组统一的类库。
IL--Intermediate Language 的简称,称为中间语言,又称为 MSIL。所有Microsoft .NET 源代码(使用任何语言)被编译为 IL,
然后在软件的安装点上或者运行时,IL 由即时(JIT)编译器转换为机器码。
图2.1演示了C# 源文件、基类库、程序集和 CRL 的编译与执行过程。
第一阶段--把 C# 编写的源文件编译为一种符合 CLI 规范的中间语言(IL)。IL 代码与资源(如位图和字符串)一起作为一种称为
程序集的可执行文件存储在磁盘上,通常具有的扩展名为 .exe 或 .dll。
第二阶段--执行 C# 程序时,程序集将加载到 CLR 中,这可能会根据清单中的信息执行不同的操作。如果符合安全要求,
CLR 执行即时(JIT)编译以将 IL 代码转换为本机机器语言。CLR 还提供与自动垃圾回收、异常处理和资源管理有关的其他服务。
由 CLR 执行的代码有时称为"托管代码",它与编译为面向特定系统的本机机器语言的"非托管代码"相对应。