gpt4 book ai didi

c# - 为什么 Assembly 和 Activator 对于 CreateInstance 的行为不同

转载 作者:行者123 更新时间:2023-12-02 18:18:34 25 4
gpt4 key购买 nike

我正在编写一些代码来动态创建一些对象(未知类型),我很好奇为什么 Activator 能够生成该类型,但 Assembly 不能。这是一个代码示例:

class Program
{
static void Main(string[] args)
{
Type t = typeof (int);
object notAnInt = Assembly.GetExecutingAssembly().CreateInstance(t.FullName);//does not work
object actualInt = Activator.CreateInstance(t);//works

Console.WriteLine(notAnInt);
Console.WriteLine(actualInt);
}
}

我的问题是,当我想象它们都应该能够创建 int 实例时,为什么这两个行为不同?

最佳答案

Assembly.CreateInstance 在该程序集中创建类型的实例。

System.Int32 未在程序集中定义。

要实现这一点,您需要获取 mscorlib 的Assembly
例如,您可以编写 typeof(Assembly).Assembly

关于c# - 为什么 Assembly 和 Activator 对于 CreateInstance 的行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19255478/

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