4

我一直在我的一些代码中使用 Activator.CreateInstance()。使用它创建实例有任何风险吗?

4

1 回答 1

12

好吧,您的代码存在弱类型的风险,并且您不会发现您不小心尝试将它与在执行时没有公共无参数构造函数的类型一起使用......而且它会执行比直接构造函数调用差一点。除此之外,应该没问题。

如果您可以围绕它进行设计以改用强类型工厂,那么在各种方面都会更可取 - 但我完全理解这并不总是合适的。基本上,当正常的设计模式让你失败时,它应该是最后的手段,但它是一个完全合理的最后手段:)

你有什么具体的顾虑吗?

于 2009-10-28T07:17:54.093 回答