clr 公共语言运行库
源代码文件经过编译器编译成托管模块((PE32或PE32+头),CLR头,中间语言,元数据)
代码编译:
编译器开关设置 C# IL代码质量 JIT本地代码质量
/optimize-/debug(默认设置) 未优化 优化
/optimize-/debug(+/full/pubonly) 未优化 未优化
/optimize+/debug(-/+/full/pubonly) 优化 优化
元数据用途:
一,在编译时,元数据据消除了对头和库文件的需求。类型/成员有关的所有信息都包含在用IL来实现类型/成员的文件中。
二,智能感知
三,序列化
四,垃圾收集器跟踪对旬的生存期
元数据是一个二进制数据块 由表构成,表分为 定义表 引用表 清单表
模块合并成程序集,clr只和程序集打关系。
程序集和命名空间:
命名空间是一个逻辑上的概念,程序集是物理概念 他们之间没有直接关系
CTS 通用类型系统
为了使一种语言和另一种语言沟通而制定的规范
![](https://img2024.cnblogs.com/blog/35695/202403/35695-20240328092537879-1189167464.jpg)