Activator.CreateInstance()

发布于 2024-08-09 08:02:59 字数 64 浏览 8 评论 0原文

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

I've been using Activator.CreateInstance() in some of my codes. Is there any risk to making an instance using this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

离不开的别离 2024-08-16 08:02:59

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

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

你有什么具体的担忧吗?

Well, there's the risk that your code is weakly typed, and you won't find out that you've accidentally tried to use it with a type which doesn't have a public parameterless constructor until execution time... and it's going to perform a bit worse than a direct constructor call. Other than that, it should be okay.

If you can design around it to use strongly typed factories instead, that would be preferable in various ways - but I totally understand that that's not always appropriate. Basically it should be a bit of a last recourse for when normal design patterns fail you, but it's a perfectly reasonable last recourse :)

Do you have any specific concerns?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文