第一章 C#和.NET框架
第一章 C#和.NET框架
1.2.1 .NET框架的组成
.NET框架由三部分组成。执行环境称为CLR(Common Language Runtime,公共语言运行库)。CLR在运行时管理程序的执行,包括以下内容。
- 内存管理和垃圾回收
- 代码安全验证
- 代码执行、线程管理及异常处理
1.2.2 改进的编程环境
- 面向对象的开发环境
- 自动垃圾收集
- 互操作性
- 不需要COM
- 简化的部署
- 类型的安全性
- 基类库
1.2.3 编译成CIL
.NET语言的编译器接受源代码文件,并生成名为程序集的输出文件
- 程序集要么是可执行的,要么是DLL
- 程序集里的代码并不是本机代码,而是一种名称为 CIL(Common Intermediate Language,公共中间语言)的中间语言
- 程序集包括下列项目:
- 程序的CIL
- 程序中使用的类型的元数据
- 对其他程序集引用的元数据
1.4 编译成本机代码并执行
程序的CIL直到它被调用才会被编译成本机代码。在运行时,CLR执行下面的步骤:
- 检查程序集的安全特效
- 在内存中分配空间
- 把程序集中的可执行代码发送给实时编译器
Just-in-time,JIT
,把其中的一部分编译成本机代码 程序集中的可执行代码只在需要的时候由JIT编译器编译,然后它被缓存起来以备在后来的程序中执行。使用这个方法意味着不被调用的代码不会被编译成本机代码,而且被调用到的代码只被编译一次。 一旦CIL被编译成本机代码,CLR就在它运行时管理它,执行像释放无主内存、检查数组边界、检查参数类型和管理异常之类的任务。有两个重要的术语由此而生。 - 托管代码 为.NET框架编写的代码称为托管代码 managed code,需要CLR
- 非托管代码 不在CLR控制下运行的代码,比如 Win32 C/C++ DLL,称为非托管代码 unmanaged code.
1.5 CLR
.NET框架的核心组件是CLR,他在操作系统的顶层,负责管理程序的运行,提供下列服务:
- 自动垃圾回收
- 安全和认证
- 通过访问BCL得到广泛的编程功能,包括如Web服务和数据服务之类的功能
1.7 各种缩写
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 宝剑锋从磨砺出,梅花香自苦寒来!