gpt4 book ai didi

c# - Type.CreateInstance 不是比 Activator.CreateInstance 更有意义吗?

转载 作者:太空宇宙 更新时间:2023-11-03 18:00:11 25 4
gpt4 key购买 nike

1)如果我们想在运行时创建给定类型的实例(因此使用后期绑定(bind)),那么我们需要调用 Activator.CreateInstance。但是如果Type类有这样的方法不是更高效吗?如果不出意外,Type.CreateInstance 可以返回强类型实例而不是 System.Object?!

2) Type.GetType 使我们只能将包含该类型的程序集的友好名称传递给它,因此它不允许我们指定该程序集的绝对路径。

知道为什么 Type.GetType 允许我们指定程序集的绝对路径是个坏主意吗?

谢谢

最佳答案

Type有一个目的:它在运行时环境中定义了一个唯一的“类型”。

保管Activator一个单独的类型,以及 Assembly对于大会资料,是件好事。拥有定义单一用途和用途的小类是更好的设计。

搬家Activator.CreateInstance进入 Type不会使它更有效 - 它可能会使您在特定场景中更容易概念化,但它会导致类型变得更大和更复杂。我个人觉得当前的设计非常干净和漂亮,并且很高兴他们保持 Type 类唯一用于定义类型,并将其他信息(如装配信息和构造)留在单独的类型中。

关于c# - Type.CreateInstance 不是比 Activator.CreateInstance 更有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2411902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com