gpt4 book ai didi

c# - 这两个创建实例的底层调用有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-03 19:32:01 24 4
gpt4 key购买 nike

               Assembly assembly = Assembly.GetCallingAssembly();
assembly.CreateInstance("MyType");

               Activator.CreateInstance(typeof(MyType));

好的,Activator.CreateInstance 可以是通用的,这样就无需强制转换您创建的实例,但是您什么时候使用一个来对抗另一个?

最佳答案

基于字符串的版本仅在当前 程序集(因为不包含程序集名称)的根命名空间(因为不包含命名空间)中查找,外加一些系统程序集。基于类型的版本已经知道要使用的类型,因此无需搜索。它可以在任何 namespace 或程序集中,但 typeof 的含义是您也可以使用“new”。

当您在运行时提供类型时,类型方法更有意义,但通常接近对象创建。

关于c# - 这两个创建实例的底层调用有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4346743/

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