Delphi泛型结合接口的应用 (译自Delphi2009 Handbook)

            通过接受一个限定的参数,这个参数是实现某个接口的类,比较起直接接受泛型,而限制这个泛型的类要更加灵活。也就是通常所说的面向接口式的编程。这样可以达到调用实现了这个接口的各种泛型的实例。这种对泛型使用接口约束的应用,在.net框架中有很广泛的应用。下面是一个实例(命名为IntfConstraint)。

 

            首先,需要声明一个接口:

 

         接下来我们定义一个类实现这个接口:

 

        精彩内容从下面开始,接着我们定义一个泛型类,这泛型类被限定了是实现了(我们上面定义的)指定的接口:

 

          这个类的泛型方法如下:

 

 

        有了如上的定义,我们可以这样使用这个泛型类(数值型参数,接着还有其他类型参数的):

 

 

 

         为了展现这个泛型类的灵活性,我又建立了一个完全不同的(对GetValue接口)的实现:

 

       

     ButtonValue中,生成按钮坐标位置(随机位置,在父对象中)的成员函数,这个和主题关系不大,所以收缩

 

        ButtonVaule中GetVaule和SetValue实现:

 

 

       下面是第二种(按钮坐标)泛型类的使用:

 

 

 

 源代码下载  (已添加了中文注释)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值