Emit学习-基础篇-为动态类添加属性、构造函数、方法
2013-03-24 18:41
417 查看
Emit学习-基础篇-为动态类添加属性、构造函数、方法
我们通过一个计算A+B的动态类来演示如何为一个动态类添加属性、构造函数、方法,以及在方法中使用类中定义的属性,按照惯例,我们先给出要实现的动态类的C#代码,然后再针对C#代码给出相应的实现,代码如下:Add
前面的步骤和之前的斐波那契实现相同,这里我们直接从属性的定义开始。首先,我们通过TypeBuilder对象的DefineField方法来定义私有字段_a和_b,并为它们设置默认值0,代码如下:
定义私有字段_a和_b
然后我们通过TypeBuilder对象的DefineProperty方法分别定义属性A、B;接着再通过PropertyBuilder的SetGetMethod和SetSetMethod方法设置它们的get和set方法,至于get和set方法的IL代码的生成则和普通的Method定义相同,这里只列出属性A的定义,属性B与A相同,代码如下:
定义公有属性A和B
最后,我们来定义构造函数和Calc方法,构造函数的定义使用TypeBuilder的DefineConstructor方法,获得一个ConstructorBuilder对象,接下来就转入到跟普通的方法定义相同的步骤,代码如下:
定义构造函数和方法
到这里,我们终于完成了动态类的创建,最后,同样给出完整的源码下载 A+B,希望这系列的文章能够对大家有帮助。
相关文章推荐
- Emit学习-基础篇-为动态类添加属性、构造函数、方法
- Emit学习-基础篇-为动态类添加属性、构造函数、方法
- Emit学习(3) - OpCodes - 动态添加属性、构造函数、方法
- Python学习笔记——动态添加属性与方法
- JavaScript基础学习之-JavaScript权威指南--第八章函数属性方法构造函数
- iOS类添加方法、属性学习笔记
- 我的Python学习笔记(四):动态添加属性和方法
- js学习(一)-动态添加、修改、删除对象的属性和方法
- Kotlin学习记录(二)—— Kotlin的变量、属性、类、构造函数、继承、方法
- JavaScript基础学习之-JavaScript权威指南--8.7函数属性方法构造函数
- 【js学习笔记-049】---函数的属性、方法和构造函数
- IOS学习笔记2—Objective C—类、属性、方法
- Struts2学习之Action接收参数方法一(属性接收参数(属性驱动))
- JavaScript中对象的创建方法与属性的添加
- JavaScript学习--Item8 函数,方法,构造函数调用 标签: javascript构造函数面向对象函数call
- c#学习摘录:类\继承\接口\字段、方法、属性\浅深复制(1)
- jQuery源码06-jQuery = function(){};给JQ对象,添加一些方法和属性,extend : JQ的继承方法,jQuery.extend()
- jquery学习笔记-jQuery操纵DOM元素属性 attr()和removeAtrr()方法
- Eclipse中setter/getter方法自动添加属性注释
- 【iOS知识学习】_UILabel添加删除线方法