03 2018 档案
摘要:逻辑运算有三种:与、或、非。实现它们可以用位运算指令And、Or、Not等三个指令。它们的使用方法和位运算一致。 完整的程序如下: using System; using System.Reflection; using System.Reflection.Emit; namespace LX1_I
阅读全文
摘要:C#支持的位运算是与、或、异或、取反、左移、右移,它们对应的指令是
And、Or、Xor、Not、Shl、Shr。
阅读全文
摘要:C#支持的数学运算是加、减、乘、除、取模,它们对应的指令是Add、Sub、Mul、Div、Rem。 这五个运算都需要两个参数,它们的通用步骤1.生成加载左边变量2.生成加载右边变量3.生成运算指令 实例: 完整的程序如下: using System; using System.Reflection;
阅读全文
摘要:创建对象用Newobj指令,它的操作是创建一个新的对象或值类型,并将对象引用的新实例到计算堆栈上。
阅读全文
摘要:本篇讲述怎样装箱拆箱。装箱和拆箱都是针对值类型而言的,装箱的性能开销远比拆箱的性能开销大。
阅读全文
摘要:本篇讲解生成构造函数的一些知识,包括创建实例构造函数、静态构造函数、调用父类构造函数。
阅读全文
摘要:索引器是一种特殊的属性,它有参数的,也有get和set方法,属性名称一般是"Item",并且方法名称一般名称是"get_Item"和"set_Item"。
阅读全文
摘要:一个方法体执行完指令后,必须要完成调用并返回,这是要使用Ret指令。
阅读全文
摘要:字段有静态字段和非静态字段之分,它们的加载保存指令也是不一样的,并且非静态字段要生成this。
阅读全文
摘要:C#关键字是非静态方法体内部,用Ldarg_0指代this例子ilGenerator.Emit(OpCodes.Ldarg_0);
阅读全文
摘要:本篇讲解怎么加载和保存参数,以及参数起始序号的确定。
阅读全文
摘要:本篇讲解实现创建方法、指定参数的名称、实现参数加out和ref修饰符、以及参数加默认值。
阅读全文
摘要:创建枚举类型比较简单,主要使用moduleBuilder.DefineEnum 和enumBuilder.DefineLiteral。
阅读全文
摘要:这一篇讲解方法内的局部变量是怎么声明、怎样保存、怎样加载的。
阅读全文
摘要:步骤1:下载fine-uploader 步骤2:加入引用 完整程序: JS也可以写成:
阅读全文
摘要:给PDF添加水印,可以用iTextSharp。 步骤1:下载iTextSharp 步骤2:在项目中添加引用itextsharp.dll 步骤3:在程序中使用iTextSharp.text.pdf 步骤5:详细实现
阅读全文
摘要:这一篇讲解怎么加载bool值、sbyte值、byte值、char值、short值。
阅读全文
摘要:本篇讲述怎么加载null、string值、long值、float值、double值。 加载null不需要参数值,只要 Emit ldnull 其它几个命令要 Emit <指令> <值> 加载null 加载null是很简单的,使用OpCodes.Ldnull,以下一句程序就可以了。 ilGenerat
阅读全文
摘要:这一篇讲的是怎样加载整数值到运算栈上。这一类的指令都是以Ldc_I4开头。
阅读全文
摘要:我们学习编程开始时,一般用输出"hello world"的一段程序,用生成IL方式也可以输出"hello world"。
下面是实现的详细过程。
阅读全文