您的位置: 咸阳信息港 > 旅游

在Visual Basic.NET 2005中使用泛型

发布时间:2019-10-16 22:08:58

使用泛型类

使用上面的代码中的泛型类与使用任何其它的类只有稍微的差别。你仍然需要实例化这个类,并且你也可以使用方法、属性和事件,与使用其它类相似。列表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中的部分,你真的应该试着使用这个新特性——你会发现自己将很喜欢它的。

查看本文来源

吉首妇科
临沂治疗包皮包茎医院
鹤岗治疗卵巢炎费用
苏州治疗早泄费用
襄樊治疗癫痫病方法
猜你会喜欢的
猜你会喜欢的