通常在我们使用C#时,对象的属性进行赋值或者取值时会使用到反射-“System.Reflection”。
反射:在程序运行时,动态获取程序集,类型(class,interface)和类型的成员信息(方法,字段,属性等)。在程序运行时,动态创建 类型实例, 以及调用和方法动态创建出来的类型实例的成员。

但由于反射的机制,当我们在对对象集合使用反射进行GET,SET的时候会消耗大量时间,从而引进“字典”来改善这一问题:
第一步:声明所谓的字典“Hashtable”
private static readonly Hashtable dic = Hashtable.Synchronized(new Hashtable());
第二步:构造“SET”or"GET"方法:
Set:

Get:

第三步:将“PropertyInfo”添加到字典中:



以上便是通过“字典”的方式来加速对象的反射,详细代码可以访问我的Github。
网友评论