详尽介绍中间语言

前些天,有七个做测验的问笔者.NET Framework是什么样,和C#是何等关系呢。

上边便是中档语言的严重性特征:

上面笔者就来解释一下.NET Framework是哪些:.NET
Framework是一个框架,是应用程序运转时所急需的实行景况,它为应用程序的实践提供有二种服务:

●      
面向对象和平运动用接口

(1)周全的类库:提供了丰硕的类库供技术员使用,使技术员的花费更具效用。

●      
值类型和引用类型之间的庞大差距

(2)内部存款和储蓄器管理:在其余编制程序语言中,有非常多是亟需技师来肩负内部存款和储蓄器的分红和刑释以至管理对象生命周期。在.NET
Framework的框架下,
工程师能够不要忧虑内部存款和储蓄器的标题(当然,那不是绝对的),因为它提供了上品的内部存款和储蓄器管理服务。

●      
强数据类型

澳门新葡萄京所有网站,(3)通用处目系统(Common Type
System,CTS):其定义了能够在上游语言(IL,接下去会解释)中利用的预约义数据类型。

●      
使用十分来管理错误

(4)开垦组织和技术:.NET
Framework提供了付出特定程序所需求的库,比如WPF,WCF,ASP.NET等。

●      
使用性情(attribute卡塔尔国

(5)语言的互操作性:在.NET
Framework上的语言编写翻译器都提供了扭转中间语言(IL,至于哪些是IL,下生龙活虎篇解释)的编写制定,这种体制使得差异的言语能够并行操作。

上边详细探讨这一个特点。

上述的那一个只是多少个轻便易行的定义,下边就来看一下.NET Framework由哪些组成:

 

.NET Framework主要有八个部分组成:一是集体语言运维时(Common Language
Runtime,CLKoleos);二是.NET Framework类库(Framework Class Library,FCL)。

1、公共语言运营时(CLTucson)

它是.NET
Framework的主导根基。本身觉着可以把它作为是一个器皿,在这一个容器里面,它提供了内部存款和储蓄器管理,线程管理,至极管理,检查项目安全等劳动。放在中间实践的代码叫做托管代码(managed
code),未有放在中间实行的代码成为非托管代码(unmanaged
code)。一般C#所写出来的代码都以托管代码。

CLHaval包括五个组成都部队分:通用处目系统(Common Type
System,CTS,上文有聊起)和国有语言专门的工作(Common Language
Specification,CLS)。

  • CTS:C#和VB.NET是三种还会有比较使用的言语,它们都以由CL科雷傲举行田间管理的,可是它们在语法和数据类型方面都是不等同的,CLWrangler是怎样进行托管呢?CTS正是用来解决那些标题标,它解决了分化语言之间数据类型区别的标题,for
    example:C#中定义整型用int,而VB用的是Integer,很显眼的差异等,通过CTS能够把那四个品种变成通用的Int32。全体的.NET
    Framework都分享那大器晚成体系系统,进而使它们能够实现无缝互操作。
  • CLS:刚才说起了CTS杀绝了数据类型的不等同,那CLS正是用来消除语法则范上的分别。CLS是大器晚成种最低的言语专门的学业,它内定了以.NET平台为目标的言语所不可不帮忙的小小特征,以致某一言语不比他.NET语言之间实现互操作所急需的全称特征。意识到那点超重大,这里研究的表征难点已不止是语言间的粗略语法差别。举例,CLS并不去关切后生可畏种语言用什么样主要字得以完成三番四回,只是关注该语言如何支撑世袭。CLS是CTS的一个子集。那就意味着少年老成种语言特征或许切合CTS标准,但又超过CLS的范围。比方:C#支撑无符号数字类型,该特征能经过CTS的测量检验,但CLS却独有识别标识数字类型。由此,借使客户在叁个构件中使用C#的无符号类型,就可能或无法与不利用无符号类型的语言(如VB.NETState of Qatar设计的.NET组件达成互操作。

2、.NET Framework类库(FCL)

它是生龙活虎组DLL程序集的相会,包涵了大气概念好的体系甚至作用。程序员能够使用这几个效能,神速的拓展出各种应用程序,比方WPF,Windows
Form和ASP.NET应用程序。

下图很好的分解了.NET Framework的场地:桔黄框框内的事物正是.NET
Framework的组成都部队分。

 

澳门新葡萄京所有网站 1

 

那接下去就来讲说第2个难点,C#与.NET Framework的涉嫌是哪些啊?

实际下面的可怜图片应该也表明得领会了,C#是面向.NET
Framework开拓的语言。除了C#之外,VB.NET和F#也都以如出意气风发辙的。

打个相比较优秀的比喻吧:.NET
Framework约等于是风流洒脱艘航母,在这里艘舰船上边能够搭载很八种型号的飞行器,比方歼11(C#),海直八(VB.NET),空警200(F#)等。都能够在.NET
Framework那艘航空母舰上运营。

 

上边介绍C#本子与.NET Framework之间的版本关系

C#版本

.NET Framework版本

Visual Studio版本

发布日期

特性

C# 1.0

.NET Framework 1.0

Visual Studio .NET 2002

2002.1

委托事件

C# 1.1

.NET Framework 1.1

Visual Studio .NET 2003

2003.4

APM(异步编程模型)

C# 2.0

.NET Framework 2.0

Visual Studio 2005

2005.11

泛型

匿名方法

迭代器可空类型

C# 3.0

.NET Framework 3.0

.NET Framework 3.5

Visual Studio 2008

2007.11

隐式类型的局部变量

对象集合初始化

自动实现属性

匿名类型

扩展方法

查询表达式

Lambda表达式

表达式树

分部类和分部方法

LINQ

C# 4.0

.NET Framework 4.0

Visual Studio 2010

2010.4

动态绑定

命名和可选参数

泛型的协变和逆变

互操作性

C# 5.0

.NET Framework 4.5

Visual Studio 2012

2012.8

异步和等待调用方信息