在.Net中,配件中的中间语言是什么意思

Python015

在.Net中,配件中的中间语言是什么意思,第1张

mmon Language Runtime)和Java虚拟机一样也是一个运行时环境,它负责资源管理(内存分配和垃圾收集),并保证应用和底层操作系统之间必要的分离。

.net框架中包括有一组.net框架类库(Framework Class Library,简称FCL)程序集,其中含 有几千个类型的定义,每个类型都提供了某种功能。

IL又称为(interpretative language 解释语言),我们.NET开发人员必定离不开IL,就算您没有学习,也一定可以在各处看到它的身影。而且IL也是.NET唯一懂得的语言,我们每天其实都在使用着ILIL是中间层语言

上层代码编译完成后都要转换为中间语言供CLR使用

IL为Intermediate Language

有时候也叫Microsoft Intermediate Language

中间语言使得在.Net中各种语言的方便交互成为了可能。

assembly, 这里把它翻译为配件, 以示和组件(Component)加以区别.

一个配件有时候是指一个EXE或者DLL文件, 实际上是一个应用程序(就是指带有主程序

入口点的模块)或者一个库文件. 但是配件实际上可以是由一个或者多个文件组成

(dlls, exes, html等等), 代表一组资源, 以及类型的定义和实现的集合. 一个配件也可

以包含对其它配件的引用. 所有这些资源、类型和引用都在一个列表(manifest)中描述?nbsp

U飧鳇anifest也是配件的一部分,所以配件是一个自我描述的,不需要其它附加的部件

对其描述!配件的另一个重要特性是,它是.Net环境下类型标识的一部分,也可以说

是基本单位。因为,区分一个类型的标识就是包含这个类型的配件名字加上类型名本身。

举个例子,配件A定义了类型T, 配件B也定义了同名类型T,但是.Net把这两个类型认为是

不同的类型。 注意,不要把配件(assembly)和名字空间(namespace)混淆起来。其实

名字空间仅仅是用来把类型名用树的形式组织起来的手段。对于运行是环境来讲,类型名

就是类型名,和名字空间一点关系都没有。 总之,记住配件名加上类型名唯一标识一个

运行时类型。 另外,配件也是.Net框架用于安全策略的基本单位,许多安全策略都是

基于配件的。

不完全正确,托管代码是由公共语言运行库环境(而不是直接由操作系统)执行的代码。托管代码应用程序可以获得公共语言运行库服务,例如自动垃圾回收、运行库类型检查和安全支持等。这些服务帮助提供独立于平台和语言的、统一的托管代码应用程序行为。

托管代码是可以使用20多种支持Microsoft .NET Framework的高级语言编写的代码,它们包括:C#, J#, Microsoft Visual Basic .NET, Microsoft JScript .NET, 以及C++。所有的语言共享统一的类库集合,并能被编码成为中间语言(IL)。运行库编译器(runtime-aware compiler)在托管执行环境下编译中间语言(IL)使之成为本地可执行的代码,并使用数组边界和索引检查,异常处理,垃圾回收等手段确保类型的安全。

在托管执行环境中使用托管代码及其编译,可以避免许多典型的导致安全黑洞和不稳定程序的编程错误。同样,许多不可靠的设计也自动的被增强了安全性,例如 类型安全检查,内存管理和释放无效对象。程序员可以花更多的精力关注程序的应用逻辑设计并可以减少代码的编写量。这就意味着更短的开发时间和更健壮的程序。

简单点说,托管代码是一microsoft的中间语言,他主要的作用是在.NET FRAMEWORK的CLR执行代码前去编译源代码,也就是说托管代码充当着翻译的作用,源代码在运行时分为两个阶段:

1.源代码编译为托管代码;(所以源代码可以有很多种,如VB,C#,J#)

2.托管代码编译为microsoft系统的.net平台专用文件(如类库、可执行文件等),即中间语言。

.NET是一个运行平台,在这个平台上我们可以用C#,VB.NET,J#等开发语言进行软件开发包括网站的开发,你可以理解成操作系统,我们用C#,VB.NET开发的应用程序必须在这个.NET平台上才能运行,就像Windows版的QQ只能在XP,或win7等windows平台上运行而无法在unix,linux等平台上运行一样,更多关于.NET的问题你可以去MSDN,挨踢e族等网站了解