我有一个Type
对象数组,对应于int
, bool
, string
, float
, int?
…
如何编写一个函数,接受上述数组并返回数组中每种类型的强类型默认值?
要从Type
获得默认值,只需调用Activator.CreateInstance
object obj = Activator.CreateInstance(theType);
关于获得强类型的部分,问题是当您以这种方式使用反射时,它处理的是对象。要获得强类型,您需要在编译时就知道它,这有点违背您的目的。当你在运行时做这些事情时,你只剩下object
或dynamic
(这只是幕后的object
)。
除此之外,如果你谈论的是通过一个方法运行数组并为每种类型返回默认值,你将谈论的是返回IEnumerable<object>
或object[]
数组,因为每个项目的类型显然不同。