我有一组Type
个对象,对应int
,bool
,string
,float
,int?
...
如何编写一个接受上述数组的函数,并为数组中的每个类型返回强类型默认值?
答案 0 :(得分:5)
要从Type
获取默认值,只需调用Activator.CreateInstance
object obj = Activator.CreateInstance(theType);
关于获得强类型的问题,问题是当你以这种方式使用反射时,它会处理对象。要获得强大的类型,您需要在编译时知道它,这会破坏您的目的。当您在运行时执行这些操作时,您将离开object
或dynamic
(幕后只有object
)。
除此之外,如果您正在讨论通过方法运行数组并返回每种类型的默认值,那么您将谈论返回IEnumerable<object>
或object[]
数组,每个项目的类型显然会有所不同。