有时可能要在运行时才能从配置文件中得知要创建的是哪一个类的实例,可以通过条件语句指定
另外要想不使用默认构造函数创建实例,可以调用CreateInstance(Type type,params Object[] args)重载方法。
class A {
}
class B : A {
}
class C : A {
}
//要在运行时决定创建A的哪个派生类实例
//使用if的方法
A create(string name) {
if (name == "B")
return new B();
else if (name == "C")
return new C();
}
比较好的方法,可以使用Activator类的CreateInstance方法。}
class B : A {
}
class C : A {
}
//要在运行时决定创建A的哪个派生类实例
//使用if的方法
A create(string name) {
if (name == "B")
return new B();
else if (name == "C")
return new C();
}
//使用Activator.CreateInstance
A create(string name) {
return Activator.CreateInstance(Type.GetType(name));
}
以上代码将根据name表示的类名创建指定实例。注意,name必须是一个完全限定名。A create(string name) {
return Activator.CreateInstance(Type.GetType(name));
}
另外要想不使用默认构造函数创建实例,可以调用CreateInstance(Type type,params Object[] args)重载方法。
浙公网安备 33010602011771号