解释 Activator.CreateInstance
时间: 2024-01-12 22:02:20 浏览: 412
`Activator.CreateInstance` 是一个用于在运行时动态创建对象的方法。它的作用类似于使用 `new` 操作符创建对象,但与 `new` 不同的是,`Activator.CreateInstance` 可以在程序运行时根据指定的类型名称动态创建对象,而不需要在编译时就确定类型。
`Activator.CreateInstance` 方法有多个重载形式,其中最常用的重载形式有以下两个:
```csharp
public static object CreateInstance(Type type);
public static object CreateInstance(Type type, params object[] args);
```
第一个重载形式用于创建指定类型的实例,返回一个 `object` 类型的对象。例如,`object obj = Activator.CreateInstance(typeof(MyClass));`可以创建 `MyClass` 类型的实例,并将其赋值给 `obj` 变量。
第二个重载形式用于创建指定类型的实例,并同时传递构造函数的参数,返回一个 `object` 类型的对象。例如,`object obj = Activator.CreateInstance(typeof(MyClass), arg1, arg2);`可以创建 `MyClass` 类型的实例,并将 `arg1` 和 `arg2` 作为构造函数的参数传递进去。
需要注意的是,使用 `Activator.CreateInstance` 创建对象时,需要保证所创建的类型具有无参构造函数或者具有与传递参数个数和类型匹配的构造函数,否则会抛出异常。
阅读全文