以下为例:
Form1,Form2,Form3……继承自Form,可以通过Form f=new Form1();等建立Form子类的实例,如果太多子类,希望通过传递一个参数,比如子类类名就可以建立实例,有什么办法?
方法一:利用反射
代码如下 | 复制代码 |
stringstr=“命名空间.Form1(Form2……)”; Type t=Type.GetType(str); Form f=Activator.CreateInstance(t); |
这样就可以实现想要的了,str为变量,当然,传参时需要加上命名空间
方法二:利用泛型
代码如下 | 复制代码 |
T CreateForem { returnnewT(); } |
然后可以调用Form f=CreateForm<参数>();//参数为Form1,Form2,Form3等。