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

本文介绍了一种通过接口约束泛型的方法,并提供了一个具体的示例。该示例定义了一个接口`IGetValue`,并展示了如何创建实现该接口的不同类。接着,定义了一个泛型类`TInftClass`,其类型参数被限定为实现了`IGetValue`接口的类型。
部署运行你感兴趣的模型镜像

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

 

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

 

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

 

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

 

          这个类的泛型方法如下:

 

 

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

 

 

 

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

 

       

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

 

        ButtonVaule中GetVaule和SetValue实现:

 

 

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

 

 

 

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

 

 

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值