VB 2010 (33)泛型约束

本文详细介绍了VB 2010中泛型约束的概念和使用,包括类型约束、类和结构约束、New约束以及如何使用多个约束。约束允许限定类型参数的类型,如必须实现特定接口或继承特定基类,从而增强泛型的功能,如在泛型列表中实现自动排序。同时,约束还提供了编译时的安全性,如调用接口方法等。
摘要由CSDN通过智能技术生成

        创建泛型类型和方法模板时能够使用的功能非常有限。因为编译器把模板代码中的所有类型参数当做System.Object处理,只能完成赋值操作和调用Object的几个方法,大大限制了泛型的用途。
        约束可以突破这种限制,同时提供一种控制机制。约束允许我们指定规则,声明在运行时可以代替类型参数的类型。使用约束,可以限定类型参数必须是—个类或者结构,也可以限定类型参数必须实现某个特定的接口或者继承某个特定的基类。
       约束不仅可以限制可用的类型,也能够给VB编译器提供重要的信息。例如,如果编译器知道某个类型参数必须实现特定接口,编译器就允许在模板代码中调用该接口上的方法。
1.类型约束
        类型约束是最常用的约束类型。类型约束可以限制某个类型参数必须是指定类的子类或者必须实现指定的接口。这个功能能够实现在向SingleLinkodList添加对象时自动给对象排序口创建该类的一个副本ComparableLinkedList,改变类的声明,添加IComparable约束:
        Public  Class  SingleLinkedList (Of ValueType  As  IComparable)
      现在,ValueType除了继承System.Object的方法,也必须实现ICorrqparable接口定义的所有方法。
      Add方法可以调用IComparable接口的所有方法(当然也可以使用System.Object的方法)。编译器知道所有的ValueType类型变量都实现了IComparable接口,因此可以安全地调用IComparablc接口定义的CompareTo方法口用下面的实现代码更新最初的Add方法:
Public Sub Add(ByVal value As ValueType)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ngbshzhn

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

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

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

打赏作者

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

抵扣说明:

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

余额充值