使用Reflection创建对象:Activator.CreateInstance或Inovking构造函数C#

ckv*_*ckv 2 .net

哪个是使用反射创建对象的更好方法?

获取构造函数的引用并调用构造函数来创建对象或

使用Activator.CreateInstance类的类.

从某种意义上说,更好的是我们为什么选择一种方法而不是另一种方法?如果是这样的话.

我只是在学习反思而且有这个问题.

Jos*_*osh 5

他们做同样的事情.它更容易使用Activator.CreateInstance.

使用与指定参数最匹配的构造函数创建指定类型的实例.

实际上,您可以从使用中获得一些性能优势,Activator因为它在内部缓存构造函数实例.如果您在循环中创建了许多这些,那么Activator代码很可能比简单的手动实现更加优化.