有平面广告设计的网站,苏州seo网站管理,中国建设网证书查询平台,dw建设个人网站步骤本章将对CLR中的IL、CTS和CLS进行一个大概的总结。下章将开始第二章的内容。 IL我们称之为高级汇编语言或者中间语言#xff0c;在我们编写基于.NET框架下的程序#xff08;不论是C#、VB或者J#等#xff09;在被编译成本地CPU指令前#xff0c;都将被编译成IL语言#xff…本章将对CLR中的IL、CTS和CLS进行一个大概的总结。下章将开始第二章的内容。 IL我们称之为高级汇编语言或者中间语言在我们编写基于.NET框架下的程序不论是C#、VB或者J#等在被编译成本地CPU指令前都将被编译成IL语言再有CLR对IL语言进行编译和控制。比如用VB在控制台应用程序写入如下代码 Sub Main() Console.WriteLine(VB) End Sub 再用C#在控制台应用程序写入如下代码 static void Main(string[] args) { Console.WriteLine(Test); } 虽然语法完全不一样除了输出比较相似外但是如果我们用微软的MSIL反汇编程序加载编译完成后的exe文件如图 图1.1 图1.2 上面两张图中图1.1为编译完成后VB语言的代码图1.2为编译完成后C#的代码在我画红线的地方大家可以看出出了第一行红线不一样为我们输出的字符串外第二行红线是完全一样也就是说不管在平台下什么语言进行编程编译器最终都会把它编译成统一的IL代码相同功能比如示例中的控制台输出指令。通过上面的示例可以很容易的看出CLR是如何支持多语言集成的只是需要不同的编译器把源文件编译成面向CLR的IL代码就可以在.NET框架下面运行。 什么是CTS CTSCommon Type System 通用类型系统是由微软制定的一个规范它表述了一个类型的定义和行为。既然CTS是一组规范那么都规定了什么呢 一、CTS规定一个类型可以包含零个或多个成员字段、属性、方法、事件 二、CTS规定了一个类型的可视原则。就是我们所说的权限修饰符public、private、protected、internal 三、CTS规定任何类型都只能从一个类型中派生即System.Object类型。虽然C支持多集成但是在.NET框架下如果编译器发现开发人员使用了多集成违反了CTS的这一规定编译器就会报错。 什么是CLS CLSCommon Language Specification 公共语言规范是由微软制定的一个各个语言间都支持的功能。也就是说CLS是CTS的一个子集而这个子集是.NET框架下面所有编程语言都必须遵守的如果需要C#和VC的应用程序进行通信。说的更详细一点就是说如果你想用C#调用C的组件那么C所使用的语法如果该方法为public如果方法不为public的话CLS不进行约束必须保证C#能够操作。可是C程序员不一定知道C#能不能操作他所写的方法这个时候就需要CLS进行约束以保证C#能正常的调用C的组件。 图1.3 图1.3中大家可以看出CLR\CTS为.NET框架下的所有语言提供了一个大的功能集。每一个语言都使用了CLR\CTS的一个子集。但是这个子集中都包含了CLS这个最小的子集。也就是说所有语言的功能及都必须支持CLS最小的供能集。 到此这本书的第一章笔者只领悟到这些东西可能还有更深层次的东西由于笔者的水平有限也只能到这里了。如有不对的地方、不准确的地方希望各位看官都能即时的提出。以便笔者学习和纠正博文中的错误谢谢 转载于:https://www.cnblogs.com/BreatheLee/archive/2011/09/15/2177400.html