如何创建实例并根据Type参数指定默认值?

时间:2011-10-08 03:39:16

标签: c# reflection

我有一组Type个对象,对应intboolstringfloatint? ...

如何编写一个接受上述数组的函数,并为数组中的每个类型返回强类型默认值?

1 个答案:

答案 0 :(得分:5)

要从Type获取默认值,只需调用Activator.CreateInstance

即可
object obj = Activator.CreateInstance(theType);

关于获得强类型的问题,问题是当你以这种方式使用反射时,它会处理对象。要获得强大的类型,您需要在编译时知道它,这会破坏您的目的。当您在运行时执行这些操作时,您将离开objectdynamic(幕后只有object)。

除此之外,如果您正在讨论通过方法运行数组并返回每种类型的默认值,那么您将谈论返回IEnumerable<object>object[]数组,每个项目的类型显然会有所不同。