在动态方法中如何尽量减少定义的 LocalBuilder 数量 (使用.net 中的动态方法编程备忘录8)
2010-07-18 10:49
615 查看
动态方法中,往往是对配置文件的循环解读中生成的,很多情况下,无法预先知道需要多少变量。
最笨的方法,当然是每当需要时,就定义一个变量,但这样,往往造成定义太多重复类型的变量,每个只用一两次。
特别是,LocalBuilder 类型变量,不能赋予 null 值,所以,你无法先声明一个LocalBuilder,需要时再根据 LocalBuilder 是否为null,而采用直接使用变量还是用 ILGenerator.DeclareLocal 定义后赋值再使用变量。
一个小技巧,是定义一个 Dictionary<Type,LocalBuilder> 字典变量,或者 List<LocalBuilder>变量,需要使用时,先判断字典中是否已存在需要的类型变量,或者判断 List 元素个数,据此确定是需要先 DeclareLocal ,还是可直接使用。
最笨的方法,当然是每当需要时,就定义一个变量,但这样,往往造成定义太多重复类型的变量,每个只用一两次。
特别是,LocalBuilder 类型变量,不能赋予 null 值,所以,你无法先声明一个LocalBuilder,需要时再根据 LocalBuilder 是否为null,而采用直接使用变量还是用 ILGenerator.DeclareLocal 定义后赋值再使用变量。
一个小技巧,是定义一个 Dictionary<Type,LocalBuilder> 字典变量,或者 List<LocalBuilder>变量,需要使用时,先判断字典中是否已存在需要的类型变量,或者判断 List 元素个数,据此确定是需要先 DeclareLocal ,还是可直接使用。
相关文章推荐
- 使用.net 中的动态方法编程备忘录1(如何查看生成的动态方法的代码)
- 在动态方法中的比较运算 (使用.net 中的动态方法编程备忘录9)
- 使用.net 中的动态方法编程备忘录5(在动态方法中使用条件语句)
- 使用.net 中的动态方法编程备忘录3(DynamicMethod 的最优访问方式)
- 使用.net 中的动态方法编程备忘录4(DynamicMethod 类的构造函数及访问其他类的私有成员)
- 使用.net 中的动态方法编程备忘录2(使用发出动态方法的意义)
- 使用.net 中的动态方法编程备忘录6(OpCodes.Ldloc 与OpCodes.Ldloca)
- OpCodes.Call 与 OpCodes.Callvirt (使用.net 中的动态方法编程备忘录7)
- FPGA verilog的编程心得---如何写代码减少逻辑单元的使用数量?
- 学习FPGA verilog的心得--编程技巧--如何写代码减少逻辑单元的使用数量
- FPGA verilog的编程心得---如何写代码减少逻辑单元的使用数量?
- 使用PHP如何获取WSDL中定义的方法列表
- 介绍.net 4.5 异步编程核心内容,如何使用Async和Await进行异步编程
- CPLD/FPGA/Verilog_如何写代码减少逻辑单元的使用数量
- action动态方法调用和使用通配符定义action
- 如何在定义游标的时候使用动态sql语句?
- 在form中调用另一个form的方法,函数:fnd_function.execute 如何在form1中调用form2呢?可以使用函数fnd_function.execute。其函数定义如下: fn
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- 关于如何删除DataTable中的重复行---使用.Net提供方法
- struts2-10动态方法调用和使用通配符定义action