MSIL(IL)百科

释义:

IL,同MSIL(Microsoft Intermediate Language),是将.NET代码转化为机器语言的一个中间语言,因此又把IL语言称之为伪汇编语言。使用.NET框架提供的编译器可以直接将源程序编译为.exe或.dll文件,也可以在.net平台上运行IL代码,C# 实现IL可参考System.Reflection.Emit命名空间下提供的类型,指令集可参考System.Reflection.Emit.OpCodes。

IL优点:

使用中间语言的优点有两点,一是可以实现平台无关性,既与特定CPU无关;二是提高了灵活性,例如,将参数A通过某个实现方式处理出结果B,而其实现方式是根据参数A的某个值T决定的,而T的值有一百种,一千种,甚至是不能确定的。直接使用if语句判断会非常复杂,如果使用System.Reflection.Emit命名空间下的DynamicMehtod制作出动态方法或动态委托就简单许多;三是其执行效率远高于使用.net反射的效率。

时间: 2024-11-13 09:38:49

MSIL(IL)百科的相关文章

如鹏网.Net基础1 第一章:.Net入门

------------------------------------------------ 重点提示: 1.程序的注释:单行注释.多行注释: ------------------------------------------------ 第1节 .Net学习路线及几个容易混淆的概念 C#过程编程语法 C#面向对象基础语法 基本类库 大量案例练习 Mysql sqlserver Ado.net 大量案例练习 综合项目 后续 HTML/JavaScript/三层架构/Asp.net/项目 三

必须知道的.NET FrameWork

这部分内容呢,对普通开发者来说,意义不是特别大.但是作为一个有情怀的开发者,应该追根溯源,懂一些自己用的工具, 的粗浅知识.并且这部分内容可以用来个HR吹嘘一下自己的情怀.基本就是这样. .NET生成的exe.dll不是普通的(可执行文件/动态链接库),.NET中提出一个概念叫 Assemblie(程序集).是“MSIL/IL”二进制字节码.(也就是我们常说的IL代码). PS:编译完成后,.NET程序是正常的“01100....”的可执行文件,而是IL代码组成的中间层代码..NET程序通过即时

.net程序员必知必会

1.C#,.Net和ASP.Net的区别: C#(Csharp):  .net平台下的一种语言:注:(其他语言也可以开发.Net程序)                   .net      :     是一个平台,提供运行.net程序,所需要的一种虚拟机,内库等!        Asp.net  :     在.net环境下开发网站的技术. 注:.Net可以通过mono跨平台进行开发 2.开发工具: 1.Visual Studio 是微软官方提供的一种开发工具 2.运行.Net程序 需要依靠 

net的基本介绍

今天2015年1月22日16:59:01,我正式开始了在如鹏网学习C#的日子.我希望我能坚持下去. 学会编程.成为一个合格的程序员. C#..Net和ASP.NET的区别 .NET是一个平台,提供了运行.net程序所需要的虚拟机.类库等. C#是.NET平台下的一个语言,.NET下的语言还有VB.NET.PowerShell等 ASP.Net是.Net下开发网站的技术 WPF.winform都是 .NET下的开发技术   .NET开发环境配置 必须安装.NET Framework.Framewo

Atitit..net clr il指令集 以及指令分类  与指令详细说明

Atitit..net clr il指令集 以及指令分类  与指令详细说明 1.1. .NET CLR 和 Java VM 都是堆叠式虚拟机器(Stack-Based VM), 1 1.2. 查看工具ILDASM1 1.3. 此程式执行时,关键的记忆体有三种,分別是:1 1.4. Il指令集2 1.4.1. Mov指令3 1.4.2.  跳转指令集合6 1.4.3.  算术 逻辑 与移位指令8 1.4.4. 类型转换9 1.4.5. Other  and oo指令10 2. 参考12 1.1. 

认识IL代码---从开始到现在 <第二篇>

·IL代码分析方法 ·IL命令解析 ·.NET学习方法论 1.引言 自从『你必须知道.NET』系列开篇以来,受到大家很多的关注和支持,给予了anytao巨大的鼓励和动力.俱往昔,我发现很多的园友都把目光和焦点注意在如何理解IL代码这个问题上.对我来说,这真是个莫大的好消息,因为很明显我们的思路慢慢的从应用向底层发生着转变,技巧性的东西是一个方面的积累,底层的探索在我认为也是必不可少的修炼.如果我们选择了来关注这项修炼,那么我们就应该选择如何来着手这项修炼,首先关注anytao的『你必须知道的.N

从Hello, world开始认识IL <第一篇>

IL代码分析方法 Hello, world历史 .NET学习方法论 1.引言 1988年Brian W.Kernighan和Dennis M.Ritchie合著了软件史上的经典巨著<The C programming Language>,我推荐所有的程序人都有机会重温这本历史上的经典之作.从那时起,Hello, world示例就作为了几乎所有实践型程序设计书籍的开篇代码,一直延续至今,除了表达对巨人与历史的尊重,本文也以Hello, world示例作为我们扣开IL语言的起点,开始我们循序渐进的

认识元数据和IL(中)&lt;第四篇&gt;

书接上回[第二十四回:认识元数据和IL(上)],我们对PE文件.程序集.托管模块,这些概念与元数据.IL的关系进行了必要的铺垫,同时顺便熟悉了以ILDASM工具进行反编译的基本方法认知,下面是时候来了解什么是元数据,什么是IL这个话题了,我们继续. 很早就有说说Metadata(元数据)和IL(中间语言)的想法了,一直在这篇开始才算脚踏实地的对这两个阶级兄弟投去些细关怀,虽然来得没有<第一回:恩怨情仇:is和as>那么迅速,但是Metadata和IL却是绝对重量级的内容,值得我们在任何时间关注

Mono为何能跨平台?聊聊CIL(MSIL)

前言: 其实小匹夫在U3D的开发中一直对U3D的跨平台能力很好奇.到底是什么原理使得U3D可以跨平台呢?后来发现了Mono的作用,并进一步了解到了CIL的存在.所以,作为一个对Unity3D跨平台能力感兴趣的U3D程序猿,小匹夫如何能不关注CIL这个话题呢?那么下面各位看官就拾起语文老师教导我们的作文口诀(Why,What,How),和小匹夫一起走进CIL的世界吧~ Why? 回到本文的题目,U3D或者说Mono的跨平台是如何做到的? 如果换做小匹夫或者看官你来做,应该怎么实现一套代码对应多种平