泛型(Generics)是Visual Basic 2005中的一种新特性,然而很多开发者在第一次看到它的时候可能忽略它,但是他们最终会发现,在了解泛型之后,离开了泛型就几乎不能工作了。泛型这个专业术语并没有道出这种特性能够实现的真实功能。假设我们需要编写一个执行数学计算的类(class)。使用标准的代码编写技术,你必须为整型和实数型(对于所有的形式)编写独立的方法。通过使用泛型,你可以一次性编写方法,并让.NET框架组件为你处理数据类型的问题。泛型可以使你在编程过程中体会到更多的快乐。你不需要额外的工作就能体会到代码重用(reuse)的优点。 阅读导航:
一、泛型的优点
使用泛型可以提高性能,其中显着的一个改进是.NET框架组件不会在值类型上使用装箱(boxing);使用泛型类的另一个令人惊讶的特性是IntelliSense居然可以跟踪强数据类型定义。
二、建立泛型类
使用泛型的时候,你应该选择建立有广泛用途的类,这样的话所建立的泛型类所花费的时间最终会整个开发时间上获得回报。例如,集合就是一种处理多个数据类型的类,而一般你会在多个应用程序中使用同一个集合的多种不同的形式,如果采用泛型,那么就不需要多次重复的建立不同形式的同一集合。
三、使用泛型类
我们在上面建立的泛型类在使用方法上与其他类没有什么不同,仍然需要将其实例化。
四、约束泛型类
也许你对实例中泛型类能够接受任何数据类型感恐惧,你不得不担心在使用中出现程序仍然会对错误参数产生反映,对,是存在这样的风险,不过我们可以对泛型类加以约束。
五、为泛型类定义多个类型
你不必仅仅使用一种数据类型定义每个类,泛型类也提供多个数据类型,你所需要做的是用逗号分开每种数据类型。
结束语
尽管泛型类起先看起来仅仅是前进的一步,但是它们实际上是.NET革命中的一个巨大飞跃。使用泛型把你从为每个数据类型建立新类中释放了出来,提高了性能,并减少了开发和调试的时间。为了体会Visual Studio 2005中最好的部分,你真的应该试着使用这个新特性——你会发现自己将很喜欢它的。
泛型有哪些重要优点?
你可能想知道泛型除了减少输入之外还提供哪些功能,毕竟你仍然需要建立类来处理信息。它的最好的特性在于正确地构建的泛型类可以真正减少代码中的安全性问题。由于你使用几个数据类型定义类,你不必依赖于通用Object类型。泛型类依赖于强数据类型定义,这与其它类在处理特定数据类型的时候是相同的。简短的说,尽管你获得了很大的灵活性,但是作为结果的代码却更加优良。
使用泛型类还可以提高性能。其中最大的一个改进是.NET框架组件不会在值类型上使用包装(boxing)。尽管泛型类可以使用多个数据类型工作,但是它在后台单独地处理每一种数据类型。这种技术确保了在你的工作量最小的情况下,应用程序提供最佳的性能。
使用泛型类的另一个令人惊讶的特性是IntelliSense居然可以为你跟踪强数据类型定义。与使用对象建立处理多个数据类型的通用方法不同,你的代码依赖于强数据类型定义,这意味着IntelliSense为你提供了更多的信息。这种特性不但使我们更容易处理代码,还减少了错误和调试时间。
建立泛型类
使用泛型的时候,你应该选择有广泛用途的类,这样的话建立泛型类所需要的时间最终会在减少开发时间方面给予你回报。例如,集合就是一种处理多个数据类型的类,并且一般你会在多个应用程序中使用同一个集合的多种不同的形式。你不需要每次根据草稿建立集合,而是使用泛型建立一个泛型类原型(prototype)。首先,你需要给代码添加如下所示的Imports语句:
| Imports System.Collections.Generic |
添加Imports语句之后,你就可以建立泛型类了。基本的类看起来很常见。你可以使用属性、函数、子程序、字段或可以在类中使用的其它任何东西,如列表1所示:
- 2002-03-08向VisualBasic程序员介绍泛型(二)
- 2004-05-19“这可不是泛型”-Bruce Eckel眼中的Java泛
- 2001-10-25泛型编程在非C++语言中的实现之探讨
- 2007-12-20通过反射填充泛型集合List的方法
- 2005-07-27JAVA泛型QUIK START
- 2002-03-08向VisualBasic程序员介绍泛型(一)
- 2007-12-31Visual C#泛型学习之泛型介绍
- 2007-12-31Visual C# 2.0泛型编程基础
- 2005-12-08彻底剖析C# 2.0泛型类的创建和使用
- 2004-02-12在VisualBaisc.NET2005中使用泛型
热点搜索
热点文章






