使用泛型程序简化代码设计
来源:互联网 发布:qq群文件无法下载 mac 编辑:程序博客网 时间:2024/05/16 15:22
在程序设计中,本人遇到这样一个问题,为了显示界面的需要把各个功能块写成"用户控件" ,并在splitcontainer控件的panel2中显示,显示的代码如下:
If Me.kj.Panel2.Controls.Count = 0 Then
Dim show_part As gl_byb ’glby 就是要显示的用户控件
show_part = New gl_byb ‘实例化控件
Me.kj.Panel2.Controls.Add(show_part) ’添加到Panel2中
show_part.Dock = DockStyle.Fill
show_part.Visible = True
Else
MsgBox("请先关闭当前窗口", MsgBoxStyle.Critical, "提 示")
End If
Dim show_part As gl_byb ’glby 就是要显示的用户控件
show_part = New gl_byb ‘实例化控件
Me.kj.Panel2.Controls.Add(show_part) ’添加到Panel2中
show_part.Dock = DockStyle.Fill
show_part.Visible = True
Else
MsgBox("请先关闭当前窗口", MsgBoxStyle.Critical, "提 示")
End If
问题来了:总共有几十个功能模块要显示,难道要把上面的代码重复几十遍?!
从上面代码中我们可以看到在反复是红用中真正需要变化的只有“gl_byb”这个用户控件类,怎样才能简化代码呢?
实际上我们可以使用泛型程序来达到目的。首先定义一个同样的显示模块Display,如下:
Private Sub Display()(Of T As {New, System.Windows.Forms.Control})()
If Me.kj.Panel2.Controls.Count = 0 Then
Dim show_part As T
show_part = New T
Me.kj.Panel2.Controls.Add(show_part)
show_part.Dock = DockStyle.Fill
show_part.Visible = True
Else
MsgBox("请先关闭当前窗口", MsgBoxStyle.Critical, "提 示")
End If
End Sub
Dim show_part As T
show_part = New T
Me.kj.Panel2.Controls.Add(show_part)
show_part.Dock = DockStyle.Fill
show_part.Visible = True
Else
MsgBox("请先关闭当前窗口", MsgBoxStyle.Critical, "提 示")
End If
End Sub
代码中“Private Sub Display()(Of T As {New, System.Windows.Forms.Control})() ” 的含义是:
Of T 表示传递一个类型参数;
As {New, System.Windows.Forms.Control} 表示 对这个泛型程序进行约束,条件有两条:1.可以使用New ** 的无参数的方式实例化类;2.这个类型是基于System.Windows.Forms.Control类的
这样我们就定义了一个可以反复使用的显示代码,在具体的按钮事件中我们只需要调用这个泛型程序就可以了!调用的代码如下:
Display(Of gl_byb)() ‘传递的类型是“gl_byb”
通过这个例子我们看到,如果我们需要传递类型的时候可以使用泛型程序来完成!
- 使用泛型程序简化代码设计
- JDBC之使用SimpleJdbcTemplate和泛型技术简化代码
- lombok使用,简化代码
- 使用 Servlet API 简化设计
- 使用Python简化循环代码
- 使用Lombok简化Java代码
- 使用反射、特性简化代码
- 使用 lombok 简化 Java 代码
- 简单来说一下java中的泛型,ssh中dao层使用会简化代码量
- 使用通配符简化泛型使用
- 使用通配符简化泛型使用
- 使用通配符简化泛型使用
- java使用通配符简化泛型使用
- 使用泛型简化动态代理
- 使用elif分支代替映射简化设计
- 使用嵌入式 Tomcat 简化程序调试
- 使用Hibernate Tool简化hibernate程序开发
- 使用嵌入式Tomcat简化程序调试
- 老大要求把Word文档加上公司的标识,公司名文字或者logo图片都可以,但要求是用电脑打开(电子文档时)能看见标识,如果打印出来(纸质文档)就不显示出来,如何实现?
- ASP的十五种使用技巧
- 程序员保持身心健康的八种方式
- 大家能把自己学习的经验写到网上一起分享吗?
- VC++ADO连接数据库
- 使用泛型程序简化代码设计
- 转载:Win2003下ASP配置技巧
- Will Apache Harmony succeed?
- i want way out
- Why Apache Harmony?
- 火影忍者第255集在线观看
- 关于Global.asa文件的深入研究与session变量失效提示的具体方法
- 模块设计
- 解决关于导入数据到mysql数据库时出现的乱码问题