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/