上面的代码是想作一个通用的,用于交换两个变量的类,由于不可能为每一种数据类型都去重载一次Swap方法,因此,方法中的参数使用了Object类型。但是问题在于如何使用该Swap方法,如果,在一个大规模的整数排序程序中使用该Swap方法,此时又会出现大量装箱及拆箱操作,速度又会受到影响。另外,由于出现了赋值操作,类型转换的安全性也得不到很好的保障。下面我们利用泛型类来对该类进行改进。
l 代码片段二:编写泛型类
public class GenericTest
{
public void Swap(ref T t1, ref T t2)
{
T tmp = t1;
t1 = t2;
t2 = tmp;
}
}
从上面的代码中可以看出一个基本的泛型编写的方式,在类名后面加上“”,这里的T被称为“类型参数”,它是一个已知类,但是直到使用该类之前,还不知道它应该是哪一种具体的类型。在编写该的实例时,我们去指定T是什么类型。
定义完“T”之后,就可以在类中去应用T类型。在Swap方法中,由于不知道使用会交换哪种数据类型,因此,Swap方法中的参数也是T类型的。
下面,我们来看一下如何使用这个泛型类:
示例的窗口如下图所示: