MSIL实用指南-生成break和continue】的更多相关文章

break和continue本质都是标签的跳转…
MSIL实用指南-生成索引器 索引器是一种特殊的属性,它有参数的,也有get和set方法,属性名称一般是"Item",并且方法名称一般名称是"get_Item"和"set_Item". 下面我们来生成如下的带有索引器的类 using System; namespace LX1_ILDemo { public class IndexerDemo { private string[,] _CustomerNames; public string th…
本篇讲解怎么生成属性,包括get和set方法. 第一步,生成一个字段生成字段用TypeBuilder.DefineField方法.实例代码: FieldBuilder customerNameBldr = typeBuilder.DefineField ("_CustomerName",typeof(string),FieldAttributes.Private); 第二步,创建一个PropertyBuilder对象创建PropertyBuilder对象需要用生成字段用方法TypeBu…
本篇讲解生成构造函数的一些知识,包括创建实例构造函数.静态构造函数.调用父类构造函数. 生成构造函数的方法生成构造函数的方法是TypeBuilder.DefineConstructor(MethodAttributes attributes, CallingConventions callingConvention, Type[] parameterTypes),调用它返回一个ConstructorBuilder对象. 实例: ConstructorBuilder newBuilder = ty…
本篇讲解怎么样生成接口,即interface. 一.创建类型创建一个接口类型依旧用ModuleBuilder的DefineType方法,但是它的第二个参数必须要有TypeAttributes.Interface | TypeAttributes.Abstract.这样才能是一个接口类型. 实例代码: TypeBuilder typeBuilder = moduleBuilder.DefineType(namespaceName + "." + typeName, TypeAttribu…
if...else...语句是非常重要的选择语句,它的生成一般需要ILGenerator的DefineLabel方法和MarkLabel方法,以及Brtrue_S和Br_S指令. 一.DefineLabel方法简单调用ILGenerator的DefineLabel方法会得到一个Label结构体.Label结构体没有复杂的功能,只是简单做一个标签.实例代码: Label label1 = ilGenerator.DefineLabel(); 二.MarkLabel方法MarkLabel方法的参数只…
生成内部类用TypeBuilder的DefineNestedType方法,得到另一个TypeBuilder.内部类的可访问性都是TypeAttributes的“Nested”开头一些成员.实例代码:ypeBuilder nestedBuilder = typeBuilder.DefineNestedType("NestedClass", TypeAttributes.NestedPublic | TypeAttributes.Sealed); 完整程序如下: using System;…
foreach可以迭代数组或者一个集合对象.foreach语句格式是它的生成步骤是foreach (<成员> in <集合>) <循环体> 一.声明三个变量,local0调用get_Current结果,local1保存集合对象的调用GetEnumerator结果,local2调用MoveNext结果.二.声明四个标签,分别是循环开始标签.finally结束标签.MoveNext标签.get_Current标签三.调用集合对象的GetEnumerator方法,保存结果到相…
for语句格式是这样的for(<初始化语句>;<条件语句>;<自增减语句>) <循环体> 它可以转换为while语句 if(<条件语句>){ <初始化语句> while(<条件语句>) { <循环体> <自增减语句> }} 那么就可以按照这while语句生成.…
本篇讲解怎么生成异常.C# 异常处理时建立在四个关键词之上的:try.catch.finally 和 throw. 一.异常的抛出抛出异常在C#语言中要使用throw关键字,使用方法是throw <一个异常对象>;和throw; 1.抛出异常抛出异常的指令是Throw,它对应的C#使用语句是throw new <异常类型>; 它的使用格式是adderIL.ThrowException(<异常Type>); 它的生成步骤是(1)用newobj指令创一个异常对象(2)生成T…