您的位置:首页 > 编程语言 > C#

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

2013-11-22 11:31 274 查看
以以下为例:

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

方法一:利用反射

string str=“命名空间.Form1(Form2……)”;
Type t=Type.GetType(str);
Form f=Activator.CreateInstance(t);这样就可以实现想要的了,str为变量,当然,传参时需要加上命名空间

方法二:利用泛型

 
T CreateForem<T>() where T : Form, new()//这里的new用作约束,见http://msdn.microsoft.com/zh-cn/library/51y09td4.aspx

        {

            return new T();

        }

然后可以调用Form f=CreateForm<参数>();//参数为Form1,Form2,Form3等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C#