C#泛型之Form class<T>:where T:class,new()

C#泛型声明语法:class:where T:class,new()

  1. where T:class限定泛型T为class(类),也可以直接继承任何一个类
  2. new()表示为该类创建构造函数
    如下:
public  class BaseDAL<T> where T : class,new ()
{

//此处略去几万行代码

}
 public partial class FrmGenerateEdit<T> : Form where T : class, new()
 {
  public FrmGenerateEdit(string sheetName, string primaryKeyField)
  {
      InitializeComponent();
      isAdd = true;
      CurrentTableName = sheetName;
      dt = NpoiExcelOperateUtil.ExcelToTable(AppDomain.CurrentDomain.BaseDirectory + "Conf\\DataGridViewConf_Form.xls", sheetName);
  }
       
}

C#泛型之Form(UserControl)

泛型Form||UserControl 即 :

BaseForm<T>:Form

根据泛型的定义:泛型是一种特殊的类型,它把指定类型的工作推迟到客户端代码声明并实例化类或方法的时候进行。

可以得到如果多个界面有相关关系,并且用到的Model继承自一个接口,或类,那再加上反射的话,可以节省大量代码.

创建一个类BaseForm继承自Form,创建泛型T,然后可以加上限制.UI包含了界面上的button,不要用Design.cs,不然编译不过去.

创建一个中间件,这是一个类继承自BaseForm,它也不能有.design.cs文件.一定要带一个空的构造函数,不然后面的几面无法进入界面设计器

创建一个Form,它继承自StringMiddleware

如果想创建一个Int32类型的界面怎么办呢?跳转到第二步,第三不.Int32Form 和StringForm的一些通用方法可以在BaseForm里面进行编写.

运行结果:

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值