,VB.net   工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛,VB.net
您的位置:软件 > 开发者网络 > 微软开发专栏 > Visual Studio.net专栏 > VB.net > 正文
在Visual Baisc.NET 2005中使用泛型
[文章信息]
作者:陶刚编译
时间:2004-11-16
出处:天极网
责任编辑:方舟
[文章导读]
泛型(Generics)是Visual Basic 2005中的一种新特性
advertisement
热点推荐
· 深入探讨SQL Server 2000对XML的支持
· Swing(空)
· 3DS Stodio Max 宝典
· 中小企业服务器配置方案--前 言
· 中小企业服务器配置方案--代理接入服务器(3)
[正文]

上一页  1 2 3  

  使用泛型类

  使用上面的代码中的泛型类与使用任何其它的类只有稍微的差别。你仍然需要实例化这个类,并且你也可以使用方法、属性和事件,与使用其它类相似。列表2显示了使用列表1中定义的泛型类的典型示例:

  列表2.使用泛型类

Private Sub btnTest_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles btnTest.Click

 ' 建立新集合
 Dim CollectInt As New MyGenericCollection(Of String)

 ' 在集合上执行某些事务
 CollectInt.Add("One")
 CollectInt.Add("Two")
 CollectInt.Add("Three")
 CollectInt.RemoveAt(1)

 ' 显示一些统计信息
 MessageBox.Show("Number of Entries: " + CollectInt.Count.ToString())
 MessageBox.Show("Value of First Item: " + CollectInt(0))
End Sub

  btnTest_Click()方法从建立一个新集合开始。请注意实例化CollectInt对象的代码。与正常的方法不同,它需要开发者提供集合的数据类型。在示例中“(Of String)”条目指定这个集合将接收String(字符串)类型的值。

  CollectInt被实例化了之后,代码使用CollectInt的方法向集合添加值,并从集合中删除值。这与操作标准的类没有任何区别,因此通常你在操作基于泛型类的对象的时候,不必改变任何技术。

  在使用几个方法操作了第一个数据项(Two)之后,代码以显示集合中数据项的数量和第一个数据项结束。同样,在使用这个对象的时候你不需要做任何专门的工作。Count属性与你预想的工作方式相同。当你处理默认属性Item的时候,你会发现没有必要执行向String类型的转换(conversion)。其原因在于IDE和.NET框架组件都知道你建立的集合使用了String数据类型。此外,IntelliSense也知道它是String数据类型的,如图1所示。请注意,你接受的是特定的String类型的信息,而不是使用Object时接收的通用类型。


图1.使用泛型意味着从IntelliSense中得到特定数据类型的反馈

  约束泛型类

  当你看列表1的时候,你可能开始对泛型类有如此的作用感到惊讶,因为示例类可以接受任何的数据类型。幸运的是,你可以约束泛型类,使它仅仅接受一种特定的数据类型。例如,你可以建立如下所示的一个Address数据类型类:

Public Class Address
 Public Name As String
 Public Address1 As String
 Public Address2 As String
 Public City As String
 Public State As String
 Public ZIP As String
End Class

  你可以通过修改声明来约束泛型类,使它只能接受Address数据类型。例如,你可能希望改变列表1中的集合,如下所示:

Public Class MyGenericCollection(Of ItemType As Address)

  这个泛型类现在只能接受Address数据类型。任何其它的用法都会产生错误(IDE拒绝编译代码)。你可以把任何通用类型(包括接口)作为约束。例如,你可能希望定义一个泛型类,它只能接受实现IcustomFormatter接口的数据类型。

  为泛型类定义多个类型

  你不必仅仅使用一种数据类型定义每个类。幸运的是,泛型类也提供多个数据类型。你所需要做的是用逗号分开每种数据类型,如下所示:

Public Class MyGenericCollection(Of ItemType1, ItemType2, ItemType3)

  这个声明接受三个输入的数据类型(不能多,也不能少)。在例子中,代码在数据类型上没有做任何约束,但是你可以轻易地根据需要添加约束。实际上,你可以在同一个声明中带有和不带约束、混合和匹配数据类型,带有约束的数据类型不必拥有相同的约束类型。你可以包含一个使用特定类和另一个依赖于某种接口的数据类型。

  总结

  尽管泛型类起先看起来仅仅是前进的一步,但是它们实际上是.NET革命中的一个巨大飞跃。使用泛型把你从为每个数据类型建立新类中释放了出来,提高了性能,并减少了开发和调试的时间。为了体会Visual Studio 2005中最好的部分,你真的应该试着使用这个新特性——你会发现自己将很喜欢它的。


上一页  1 2 3  

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 
,VB.net相关内容,VB.net焦点新闻
  • 用锯齿形数组提高.NET应用程序速度
  • Visual Basic.NET中组件的叠加使用
  • VB.NET中的TextBox控件详解
  • 用VB.NET打造个性化ListBox控件
  • VB.NET状态栏控件上添加任意控件
  • FVD刺激高清碟机加速商业化 抢占商机最重要
  • 3家搜索引擎集体诉讼8848 吕春维未敢出席
  • 杨元庆:没有准备不会获批的备用方案
  • 军队信息化诞生新领域 电子军务呼之欲出
  • 世界经济论坛公布信息化程度全球最新排名
  • 2004政务绩效评估:政府门户尚处于发展阶段
  • 甲骨文出资5.15亿美元 意图收购RetekInc
  • 技术并购:帮你突破传统增长的“天花板”
  • ,VB.netAdvertisement