.NET框架由三部分组成:
1.编程工具。
2.基类库(BCL).
3.公共语言运行库(CLR)
CLR 在运行时管理程序的执行,包括以下内容:
- 内存管理和垃圾收集。
- 代码安全验证。
- 代码执行、线程管理及异常处理。
NET 框架的特点以及其带来的好处:
- 1)面向对象的开发环境
- 2)自动垃圾收集
CLR 有一项服务称为 GC(垃圾收集器),它能自动管理内存。GC 自动从内存中删除程序不再访问的对象。 - 3)互操作性
- 4)不需要 COM
- 5)简化的部署
- 6)类型安全性
- 7)基类库
编译成 CIL
编译成本机代码并执行
在运行时,CLR 执行下面的步骤:
- (1)检查程序集的安全特性;
- (2)在内存中分配空间;
- (3)把程序集中的可执行代码发送给即时(just-in-time,JIT)编译器,把其中的一部分编译成本机代码。
托管代码:为.NET 框架编写的代码称为托管代码,需要CLR。
非托管代码:不在 CLR 控制之下执行的代码,比如 Win32 C/C++ DLL,称为非托管代码。
编译和执行
CLR
CLI
公共语言基础结构
CLI 的重要组成部分
1.公共类型系统
CTS (公共类型系统)定义了那些在托管代码中一定会使用的类型的特征:
- CTS 定义了一组丰富的内置类型,以及每种类型固有的、独有的特性;
- .NET 兼容编程语言提供的类型通常映射 CTS 中已定义的内置类型集的某一个特殊子集。
- CTS 最重要的特征之一是所有类型都继承自公共的基类——object。
- 使用 CTS 可以确保系统类型和用户定义类型能够被任何.NET 兼容的语言所使用。
公共语言规范
CLS(公共语言规范)详细说明了一个 .NET 兼容编程语言的规则、属性和行为,其主题包括数据类型、类结构和参数传递。
C# 的演化