一、基本概念
IL(中间语言)指CTS、CLS规范、语言相互调用,CLR运行环境指.NET虚拟机加载程序集编译成机器语言、内存管理(分配和垃圾回收机制)、事件框架机制、分段执行机制、应用程序域创建和组件通信、代码安全检查和异常处理。
CTS(通用类型系统):所有托管语言定义的类型,都会编译为中间语言定义的通用类型;VB中整型,C#中的int 都会被编译映射为int32, 这样不同的语言通过CTS就可以相互继承,关联组合,依赖实现通信。类型分为值类型和引用类型,值类型(内置,枚举,用户定义的值类型),引用(接口,指针,自我描述), 自我描述(数组,类), 类(用户定义的类,委托,装箱值类型)。
CLS(公共语言规范):CLS是一个最低语言规范标准集,例如CLS指定不使用任何只是根据大小写区分的名称(不区分大小写的语法),以前的VB代码就可以和CLS兼容代码一起使用,可以定制编译选项(支持部分的CLR特性的编译器编写,语言之间的相互通信)。
GC(垃圾回收器):对应用程序使用的资源(内存资源)进行管理。
总结:C#编译器VS或其他将源代码(依据CTS、CLS规范等)编译成中间语言IL,程序运行时,CLR把IL语言使用JIT(按需即时编译)为平台上专用的机器代码,把JIT编译好的机器代码存储,后续运行代码是无需编译。