定义
CLR 是 .NET Framework 的基本虚拟机组件。 它是 .NET Framework 中的运行时环境,它运行代码并通过提供各种服务帮助简化开发过程。
CLR参与过程
- 特定于语言的编译器将源代码编译成 MSIL(Microsoft 中间语言),也称为 CIL(通用中间语言)或 IL(中间语言)及其元数据。 元数据包括程序的每个功能的所有类型、实际实现。 MSIL 是与机器无关的代码。
- 现在 CLR 应运而生。 CLR 为 MSIL 代码提供服务和运行时环境。 CLR 内部包含 JIT(即时)编译器,它将 MSIL 代码转换为由 CPU 进一步执行的机器代码。 CLR 还使用 .NET Framework 类库。 元数据向 CLR 处理 MSIL 代码的 CLR 提供有关编程语言、环境、版本和类库的信息。 由于 CLR 很常见,因此它允许用不同语言编写的类的实例调用用另一种语言编写的类的方法。
Main Components of CLR
- Common Language Specification (CLS)
它负责将不同的 .NET 编程语言语法规则和规定转换为 CLR 可理解的格式。 - Common Type System (CTS)
每种编程语言都有自己的数据类型系统,因此 CTS 负责理解 .NET 编程语言的所有数据类型系统,并将它们转换为 CLR 可理解的格式,这将是一种通用格式。 - Garbage Collector
- JIT(Just In Time Compiler)
它负责使用公共语言运行时环境将 CIL(公共中间语言)转换为机器代码或本机代码。
CLR 的优点
- 它通过在运行时提供程序之间的丰富交互来提高性能。
- 通过消除在任何支持它的操作系统上重新编译程序的需要来增强可移植性。
- 当它分析 MSIL 指令是否安全时,安全性也会提高。 此外,使用委托代替函数指针增强了类型的安全性。
- 借助垃圾收集器支持自动内存管理。
- 提供跨语言集成,因为 CLR 内部的 CTS 提供了一个通用标准,可以激活不同的语言来扩展和共享彼此的库。
- 支持使用以其他 .NET 编程语言开发的组件。
- 提供语言、平台和架构独立性。
- 它允许轻松创建可扩展的多线程应用程序,因为开发人员无需考虑内存管理和安全问题。