c# 以类名为参创建父类相同的类的实例代码

时间:2022-05-02 00:47:24

以下为例:

Form1,Form2,Form3……继承自Form,可以通过Form f=new Form1();等建立Form子类的实例,如果太多子类,希望通过传递一个参数,比如子类类名就可以建立实例,有什么办法?

方法一:利用反射

?
1
2
3
string str=“命名空间.Form1(Form2……)”;
Type t=Type.GetType(str);
Form f=Activator.CreateInstance(t);

这样就可以实现想要的了,str为变量,当然,传参时需要加上命名空间

方法二:利用泛型

?
1
2
3
4
T CreateForem<T>() where T : Form, new()//这里的new用作约束
    {
      return new T();
    }

然后可以调用Form f=CreateForm<参数>();//参数为Form1,Form2,Form3等。

以上这篇c# 以类名为参创建父类相同的类的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。