c# 以类名为参创建父类相同的类的实例代码
以下为例:
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用作约束
{
return new T();
}
然后可以调用Form f=CreateForm<参数>();//参数为Form1,Form2,Form3等。
以上这篇c# 以类名为参创建父类相同的类的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
C#中子类调用父类的实现方法
本文实例讲述了C#中实现子类调用父类的方法,分享给大家供大家参考之用.具体方法如下: 一.通过子类无参构造函数创建子类实例 创建父类Person和子类Student. public class Person { public Person() { Console.WriteLine("我是人"); } } public class Student : Person { public Student() { Console.WriteLine("我是学生"); } }
-
c# 以类名为参创建父类相同的类的实例代码
以下为例: Form1,Form2,Form3--继承自Form,可以通过Form f=new Form1();等建立Form子类的实例,如果太多子类,希望通过传递一个参数,比如子类类名就可以建立实例,有什么办法? 方法一:利用反射 string str="命名空间.Form1(Form2--)"; Type t=Type.GetType(str); Form f=Activator.CreateInstance(t); 这样就可以实现想要的了,str为变量,当然,传参时需要加上命名空
-
JS创建事件的三种方法(实例代码)
1.普通的定义方式 <input type="button" name="Button" value="确定" onclick="Sfont=prompt('请在文本框中输入红色','红色',' 提示框 '); if(Sfont=='红色'){ form1.style.fontFamily='黑体'; form1.style.color='red'; }" /> 这是最常见的一种定义方式,直接将JS事件定义在需要的
-
数据结构 双向链表的创建和读取详解及实例代码
数据结构 双向链表的创建和读取 双向链表是为了满足更加方便的查找前驱,而付出空间的代价的一个数据结构.双向链表的节点定义如下: typedef struct node { int x; struct node *prior,*next; }DLNode; 双向链表的空间结构如下图所示: 双向链表的创建如下: //创建双向链表 DLNode *create_DList() { DLNode *p,*h,*l; int n,i,x; h = (DLNode *)malloc(sizeof(DLNod
-
shell批量创建文件并重新命名的实例代码
目录 一.问题 二.解决 1.批量删除文件 2.文件更名 三.总结 一.问题 使用for循环批量创建10个文件,从linux-1到linux-10.并将上述文件的前缀改为unix. 二.解决 1.批量删除文件 批量创建命名从linux-1到linux-10的文件. (1)方法一:常规方法 #使用for循环批量创建10个文件 linux-1到linux-10 #!/bin/sh [ ! -d $PWD/file ] && mkdir -p $PWD/file && exit
-
详解C# 利用反射根据类名创建类的实例对象
"反射"其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间. 1.假设你要反射一个 DLL 中的类,并且没有引用它(即未知的类型): Assembly assembly = Assembly.LoadFile("程序集路径,不能是相对路径"); // 加载程序集(EXE 或 DLL) dynamic obj = assembly.CreateInstance("类的完全限定名(即包括命名空
-
浅谈java继承中是否创建父类对象
1. 调用父类构造方法是真的,但是根本没有创建父类对象,只不过是调用父类构造方法来初始化属性. 如果说调用父类构造方法就等于创建父类对象,那就真的无稽之谈. new指令开辟空间,用于存放对象的各个属/性引用等,反编译字节码你会发现只有一个new指令,所以开辟的是一块空间,一块空间就放一个对象. 然后,子类调用父类的属性,方法啥的,那并不是一个实例化的对象. 在字节码中子类会有个u2类型的父类索引,属于CONSTANT_Class_info类型,通过CONSTANT_Class_info的描述可以
-
Python线程创建和终止实例代码
python主要是通过thread和threading这两个模块来实现多线程支持. python的thread模块是比較底层的模块,python的threading模块是对thread做了一些封装,能够更加方便的被使用.可是python(cpython)因为GIL的存在无法使用threading充分利用CPU资源,假设想充分发挥多核CPU的计算能力须要使用multiprocessing模块(Windows下使用会有诸多问题). 假设在对线程应用有较高的要求时能够考虑使用Stackless Pyt
-
EasyUI创建人员树的实例代码
最近做了一个树状的下拉列表,在这里记录一下,以后可以直接使用 项目中的树状下拉列表是用来选择人员用的,具体实现展示如下: 先说一说功能,左边的人员数是提供选人的,当点击中间的按钮,选中的人员会直接移到右边,如果要删除已选中的人员,只需要双击右边人的姓名即可,点击确定进行集体的业务逻辑操作,一般就是新增人员到某一个表中. 我们再来看看这个DIV的具体代码,由于项目中在多个地方都使用到了这个人员树,所以我把这个DIV抽象出来当作一个公共的jsp页面.如需调用,只需要include这个jsp即可 us
-
SpringBoot创建JSP登录页面功能实例代码
添加JSP配置 1.pom.xml添加jsp解析引擎 <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>javax.s
-
MyBatis创建存储过程的实例代码_动力节点Java学院整理
所需要用到的其他工具或技术: 项目管理工具 : Maven 测试运行工具 : Junit 数据库 : Derby 本节需要用到的有2部分,第一部分是如何在Derby中创建存储过程,第二部分是如何在Mybatis中调用存储过程 一. 在Derby中创建存储过程 在Eclipse中创建一个新的普通Java项目命名为Test_Store_Procedure 在com.bjpowernode.practice包下创建一个Class命名为StoreProcedureOperationClass.class
随机推荐
- awk正则表达式和内置函数的使用方法实例详解
- jquery中push()的用法(数组添加元素)
- jquery获取select,option所有的value和text的实例
- Android动态加载布局
- 一行代码实现IOS 3DES加密解密
- js操作XML文件的实现方法兼容IE与FireFox
- JS实现身份证输入框的输入效果
- asp.net Datalist控件实现分页功能
- python使用fileinput模块实现逐行读取文件的方法
- Python序列操作之进阶篇
- 深入理解Python中变量赋值的问题
- Getmac返回计算机中所有网卡的媒体访问控制 (MAC) 地址以及每个地址的网络协议列表
- vbs xmldom初次实战获取QQ签名的代码
- C#操作Access通用类实例
- Oracle的substr和instr函数简单用法
- 通过jQuery源码学习javascript(一)
- 关于JavaScript的面向对象和继承有利新手学习
- 微信小程序调用PHP后台接口 解析纯html文本
- win2008 R2设置IP安全策略后在服务器内打开网站很慢或无法访问外部网站的原因
- Android Bitmap的加载优化与Cache相关介绍
