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

Gau*_*tam 2 c# reflection

我有一个数组Type的物体对应的int,bool,string,float,int?...

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

Ant*_*ram 5

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

object obj = Activator.CreateInstance(theType);
Run Code Online (Sandbox Code Playgroud)

关于获得强类型的问题,问题是当你以这种方式使用反射时,它会处理对象.要获得强大的类型,您需要在编译时知道它,这会破坏您的目的.当你在运行时做这些事情时,你会留下objectdynamic(它只是object在幕后).

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