C#基础系列-名词解释
一、前言
.NET Framework是基于Windows的托管代码编程模型,其并不是Win32 Api和COM的一个抽象。Win32 Api是Microsoft32位平台的应用程序编程接口,其提供相应函数调用平台的底层功能。比如窗口管理、窗口通用控制、Shell特性、图形设备接口、系统服务、国际特性、网络服务。COM(组件对象模型)是一种跨应用和共享二进制代码的方法。
二、名词解释
1、CLR公共语言运行时,是.NET Framework的核心组件、主要执行引擎、是一个运行时环境,保证应用程序与操作系统之间的必要分离。其核心功能是基类库支持、内存管理、线程管理、垃圾回收、安全性、类型检查、异常处理、即时编译(JIT),是一个通用语言运行平台,类似于java语言的虚拟机(JVM)。
2、CLS公共语言规范,是CLR的一部分,对于不同的语言在一些特性上的不同。例如多继承、无符号数据类型、运算符重载的支持等存在差异,通过CLS进行规范限制这些差异引发的互操作性问题,定义了以.NET平台为目标的语言所必须支持的最小特征。(平台多语言兼容)
3、CTS通用类型系统,所有CLR功能实现都是基于类型,所以要对类型制定规范实现不同编程语言的代码沟通,主要特性有类成员、访问可见性级别、类型的继承、接口、虚方法、对象的生命周期。(基本类型的定义)
4、IL中间语言,面向CLR的编译器生成的代码都是IL(中间语言)代码,因为CLR要管理它的执行所以IL语言是与CPU无关的机器语言,IL能访问和操作对象类型,并且提供指令来创建和初始化对象、调用对象的虚方法以及直接操作数据元素,甚至可以提供抛出和捕获异常的指令来实现错误处理,是一种面向对象的机器语言。
三、总结
CLR如何运行代码?面向CLR的编译器将代码编译成IL中间语言,其中编译的dll或者.exe在平台上运行时必须把IL转换成本地CPU指令,通过CLR的JIT功能JITCompiler函数对程序引用程序集中查找被调用的方法(Console.WriteLine)获取其IL,将IL编译成本地CPU指令存储于内存中,然后依次执行指令。
ps:CLR可以实现不同编程语言之间方便切换,可以使用不同语言的特性运用于同一个项目。