什么是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/