当我们在撸码的时候,不可避免的要使用反射来修改属性的值。我们都知道这种反射是太阳一般的慢,如果属性类型是值类型,那么就会因为装箱拆箱产生额外的GC(垃圾回收)。那么加快速度并减少GC呢,本文将介绍一个名为“CreateDelegate”的黑科技。
设我们有这么一个类:
public class Test
{
public int id { get; private set;}
}
那么当我们要在类型的外部修改id值的时候,该怎么办呢?当然是把set前面的private去掉,本文终。某些时候,我们因为限制而无法修改类型的内容(例如使用第三方库,再例如为了保证编程规范), 那么我们就需要这么写:
//For