Activator.CreateInstance <t>() - 是否有更有效的方法来创建对象?</t>

时间:2013-03-21 21:27:40

标签: c# asp.net .net asp.net-4.5

我有很多代码片段,目前使用Activator.CreateInstance()来创建基于类型的对象。是否有更优化的方法来实现这一目标?

1 个答案:

答案 0 :(得分:2)

我将假设您无法使用new关键字,因为您是通过通用工厂创建对象的实例。

您的选项受限于如何通过反射实例化对象。除了Activator.CreateInstance及其衍生物之外,我所知道的唯一方法是使用泛型类型定义来实例化对象,方法是声明new constraint。这允许您致电new T()。您要实例化的对象必须声明一个无参数构造函数才能使其生效。

如果性能至关重要,那么我建议您避免任何反射或基于通用的对象实例化模式,并尽可能使用new关键字创建相关对象的实例。