天天看点

IL合集二

   在第一篇关于IL的文章中,我们写了一些IL的相加,创建对象,循环以及实现TryCatch的一些功能,接下来,为大家带上后续关于IL的更新,其中包括,类型转换,以及条件判断,还有定义字段,定义属性,定义事件,以及事件能够实现多播委托的功能,最后还有定义枚举。

上面的代码是将值类型转为引用类型,并且返回结果。

上面的代码中定义了一个方法,入参为object类型,在下面IL代码中是判断这个参数是否为null或者是0,如果不是 就跳转到truelabel标签代码,

与上面的相反,Brfalse是判断参数是否为空引用或者null或者是0;

   在C#中,由于编辑器对代码进行了封装所以,我们定义属性的时候,是使用get set关键字去进行设置的,但是实际上get和set也是方法,在很久之前的版本记得是1.0的时候是没有这两个关键字的,当时定义属性是和Java一样需要定义get set方法,所以上面那段代码,定义了一个属性叫CustomField,那对应的属性需要有get和set方法,那在get方法,只需要返回定义的字段信息,然后返回就可以了,在set方法中,只需要把参数赋值给定义的字段,就是先set方法。

   众所周知,事件是可以定义成委托类型,委托又涉及到了多播委托,这里不对反编译后的委托进行过多的讲解,只是通过Delegate的combine方法进行多个委托的连接从而实现一个多播委托,并且定义相关的add和remove的方法,以及触发事件的方法

   枚举的定义其实很简单,可以看一下上面的代码。

   今天的IL合集就到这里了,具体的项目中使用还是得结合具体的场景去实现。

Box 值类型转引用类型