反射构造各种类型实例
在使用反射时,经常要动态的创建各种类型的实例对象,下面就总结一下,如何使用反射创建普通类型对象、数组、委托、泛型对象。
一般类型对象
对于一般类型,直接使用Activity.CreateInstance(Type)进行创建。
1 | public class Data{} |
创建数组对象
- 使用Activitor.CreateInstance创建
1 | public class Data{} |
- 使用Array.CreateInstance进行创建
1 | public class Data{} |
委托类型创建
委托类型创建,可以通过Delegate.CreateDelegate(Type,object,MethodInfo);
1 | public delete void CustomDele(); |
创建泛型对象
在创建泛型对象之前,首先要了解一下泛型相关的知识,泛型可以分为开发类型和封闭类型。
开放类型是指未指定了泛型的类型参数的泛型,如Dictionary就是开放类型,开放类型是不能构造实例的,很好理解,因为不知道创建的TKey,TValue是什么类型。
封闭类型是指指定了泛型类型参数的,如Dictionary这里的string类型和int类型称之为类型实参。
下面看一下如何具体创建一个泛型实例对象
1 | public class Program |