VB 2010 (32)泛型方法

    前面通过例子介绍了如何使用类型参数(例如T或V)来声明方法。这些泛型方法的例子都是在泛型类型(比如类、结构、接口)中实现的。
    在普通类、结构、接口和模块中也可以创建泛型方法。这时,类型参数不是在类、结构或者接口上指定,而是直接在方法上指定。
    例如,声明一个判定对象是否相等的泛型方法:
         Public Module Comparisons
               Public hinction AreEqual(Of T) (ByVal a As T, ByVal b As T) As Boolean
              Return a.Equals(b}
        End Function
  在这个例子中,AreEqual方法是在模块中定义的——当然也可以在类和接口中定义口AreEqual方法接受两组参数。第一组参数是类型参数T。第二组参数是方法接受的普通参数,其类型由类型参数T定义。
    与泛型类一样,在泛型方法中编写代码时,类型参数被当做System.Object类型处理。这严重限制了使用类型参数声明的参数和变量的功能。也就是说,只能进行赋值和调用所有System.Object变量的几个方法。
      与泛型类型一样,泛型方法可以接受多个类型参数
        Public Class Comparisons
              Public Function AreEqual(Of T, R) (ByVal a As Integer, ByVal b As T) As R
                      ' implement code here
             End Function
      End Class
   在这个例子中,该方法在类中而不是在模块中定义a方法接受两个类型参数T和R。方法的第一个参数是普通的类型,第二个参数的类型是T,返回类型被设定为R。这个例子展示了如何在方法参数列表和返回类型中同时使用普通类型和泛型类型参数,以及如何扩展方法代码。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值