我有很多代码片段,目前使用Activator.CreateInstance()来创建基于类型的对象。是否有更优化的方法来实现这一目标?
答案 0 :(得分:2)
我将假设您无法使用new
关键字,因为您是通过通用工厂创建对象的实例。
您的选项受限于如何通过反射实例化对象。除了Activator.CreateInstance
及其衍生物之外,我所知道的唯一方法是使用泛型类型定义来实例化对象,方法是声明new constraint。这允许您致电new T()
。您要实例化的对象必须声明一个无参数构造函数才能使其生效。
如果性能至关重要,那么我建议您避免任何反射或基于通用的对象实例化模式,并尽可能使用new关键字创建相关对象的实例。