随笔分类 - MSIL
摘要:委托是一种特殊的引用类型,其设计目的是表示函数指针。所有委托都来自[System.Runtime]System.MulticastDelegate类型,它又派生自[System.Runtime]。委托本身是密封的(就像值类型一样),因此不能从它们派生类型。 对委托结构施加的限制与对枚举器结构施加的限
阅读全文
摘要:前言 在C#中提供了一些关键字if、else、switch、for等,这些关键字为我们提供了应用程序的流程控制。后面几个章节我们将看到的是流程控制在IL中的实现。 static void Main(string[] args) { var a = 1; if (a == 0) { Console.W
阅读全文
摘要:前言 上一篇文章主要介绍了IL的概念以及基础的示例代码,在这一篇文章中我们将通过对象调用看IL。 创建对象与调用方法 class Program { static void Main(string[] args) { var obj = new MyClass(); Console.WriteLin
阅读全文
摘要:基础概念 Microsoft中间语言(MSIL),也成为通用中间语言(CIL),是一组与平台无关的指令,由特定于语言的编译器从源代码生成。MSIL是独立于平台的,因此,他可以在任何公共语言基础架构支持特定的环境上执行。 通过JIT编译器将MSIL转换为特定计算机环境的特定机器代码。这是在执行MSIL
阅读全文
摘要:在源代码中设置断点,然后进行点击调试 若要启用反汇编窗口,请在工具>选项(或工具> 选项>调试下,选择启用地址级调试。 若要在调试期间打开反汇编窗口,请选择窗口>反汇编或按 Alt+8 。 除汇编指令外,反汇编窗口还可显示下列可选信息: 每条指令所在的内存地址 对于本机应用程序,它是实际内存地址。
阅读全文