Xwen的叹息

挣扎于设计和需求之间
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

根据字符串创建指定的实例

Posted on 2007-05-13 17:17  Xwen  阅读(449)  评论(1)    收藏  举报
    有时可能要在运行时才能从配置文件中得知要创建的是哪一个类的实例,可以通过条件语句指定
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方法。
//使用Activator.CreateInstance
A create(string name) {
    
return Activator.CreateInstance(Type.GetType(name));
}
  
    以上代码将根据name表示的类名创建指定实例。注意,name必须是一个完全限定名。
    另外要想不使用默认构造函数创建实例,可以调用CreateInstance(Type type,params Object[] args)重载方法。