通过这种方式可以直接对接口实例化了(伪),动态的通过委托来实现接口,匿名类型是在运行时动态构建的。 实现思路: 使用AssemblyBuilder、TypeBuilder构建类型,并用FieldBuilder构建一个字典字段<String, Delegate>,用来保存函数名和匿名函数,MethodBuilder构建方法并使用IL流填充,调用保存的匿名函数表中的函数。 构建动态类型的方法要求传入一个<String, Delegate>函数字典,可以使用字典的初始化器来初始化匿名函数来达到实现…
通过这种方式可以直接对接口实例化了(伪),动态的通过委托来实现接口,匿名类型是在运行时动态构建的。 实现思路: 使用AssemblyBuilder、TypeBuilder构建类型,并用FieldBuilder构建一个字典字段<String, Delegate>,用来保存函数名和匿名函数,MethodBuilder构建方法并使用IL流填充,调用保存的匿名函数表中的函数。 构建动态类型的方法要求传入一个<String, Delegate>函数字典,可以使用字典的初始化器来初始化匿名函数来达到实现…
在C#中委托是个非常好用的东西,可以声明event事件,而且只需要+=即可订阅,制作类库作为内外的通信是很方便的,但是Java中却没有,但是可以使用接口来实现委托以及事件订阅的功能。 还有一部分人觉得在C#中使用委托可能会使代码的可读性下降,也推荐在C#中使用接口来实现该功能。 以下的代码使用C#写的,Java中也同样适用,但是Java一个类文件不能存在多个公共类,所以需要把每个文件分开写。 //接口的声明 public interface ICustomInterface { void CustomState(C…
COPYRIGHT © 2014-2023 雪千渔Blog. ALL RIGHTS RESERVED.
Theme Kratos Made By Seaton Jiang