.net - 什么是System.Activator.CreateInstance?

标签 .net

什么是System.Activator.CreateInstance,什么时候应该使用它?

最佳答案

它允许您创建其类型仅在运行时已知的对象的实例。因此,假设您有一些类(class)

public class MyClass
{
    public void SomeMethod()
    {

    }
}

并且您想创建它的一个实例。标准方法是执行此操作:
MyClass instance = new MyClass();

但是正如您所看到的,这意味着必须在编译时知道该类型。如果您想让用户在某些文本框中输入类的名称,该怎么办。在这种情况下,您可以使用Activator.CreateInstance:
// this could come from anywhere and it's known only at runtime
string someType = "MyClass"; 
object instance = Activator.CreateInstance(Type.GetType(someType));

缺点是,由于实际类型在编译时未知,因此您必须使用use reflection才能操作用Activator.CreateInstance创建的实例。

关于.net - 什么是System.Activator.CreateInstance?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9409293/

相关文章:

.NET 哈希表 - "Same"键,不同的哈希

.net - 在实例化时赋予类唯一 ID : .Net

c# - Lazy<T> 实现和 .NET 泛型

.net - Windows .NET应用程序中的压力测试应用程序

c# - 使用 Windows 文件复制或文件移动动画?

c# - 如何将自定义方法添加到 Entity Framework 中的自动生成类?

.net - 按实现类型查找 Ninject 绑定(bind)

c# - 如何在单个原子操作中移动 C# .NET 中的目录

.net - 修复带有可区分联合的立即循环引用

c# - ElasticSearch 5.x 上下文建议器 NEST .Net