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等
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#调用COM组件
- c#中虚函数的相关使用方法
- 浅析C# web访问mysql数据库-整理归纳总结
- C# IP地址与整数之间转换的具体方法
- C#实现的阴历阳历互相转化类实例
- C# 的关键字详细介绍
- c# 获得局域网主机列表实例
- C#中Convert.ToInt32()和int.Parse()的区别介绍
- C#面向对象特征的具体实现及作用详解
- 关于C# Math 处理奇进偶不进的实现代码
- c# 随机函数的使用详解
- c#之圆形无标题栏椭圆窗体的实现详解
- C#页面之间跳转功能的小结
- 浅析C# 基础语法的使用
- C#中将字符串转换为整型的三种解决方法总结
- 深入c# GDI+简单绘图的具体操作步骤(一)
- C#中英文混合字符串截取函数
- C# 面向对象的基本原则
- 使用C#开源文件实时监控工具Tail&TailUI介绍
- C# 正则判断一个数字的格式是否有逗号的代码