C#可视化程序设计案例教程(第5版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.3 公共语言运行库

.NET Framework的核心是运行库的执行环境,称为公共语言运行库(CLR)或.NET运行库。通常将在CLR的控制下运行的代码称为托管代码(Managed Code)。

但是,在CLR运行开发的源代码之前,需要编译它们(C#或其他语言)。在.NET中编译分为两个阶段。

1)把源代码编译为MSIL。

2)CLR把MSIL编译为平台专用的代码。

这两个阶段的编译过程非常重要,正是将代码编译为中间语言才使得.NET具有了许多优点。

微软中间语言与Java字节代码共享同一种理念:它们都是一种低级语言,语法很简单(使用数字代码,而不是文本代码),可以快速地转换为内部机器码。对于代码来说,这种精心设计的通用语法具有以下优点。

1)平台无关性。这意味着包含字节代码指令的同一文件可以放在任一平台中,编译过程的最后阶段可以很容易地完成,这样代码就可以运行在特定的平台上。换言之,编译为中间语言就可以获得.NET平台无关性,这与编译为Java字节代码就会得到Java平台无关性是一样的。

2)提高了性能。前面把MSIL和Java字节代码做了比较,实际上,MSIL比Java字节代码的作用还要大。MSIL总是即时编译的(称为JIT编译),而Java字节代码常常是解释性的,其缺点是在运行应用程序时,把Java字节代码转换为内部可执行代码的过程会导致性能的损失。

3)语言的互操作性。使用MSIL不仅支持平台无关性,还支持语言的互操作性。简言之,就是能将任何一种语言编译为中间代码,编译好的代码可以与从其他语言编译过来的代码进行交互操作,如Visual Basic、Visual C++、Visual J#、脚本语言、COM和COM+。