泛型为开发人员提供了以下优势:
1,源代码保护,使用一个泛型算法的开发人员不需要访问算法的源代码。然而,使用C++模板的泛型技术时,算法的源代码必须提供给准备使用算法的用户。
2,类型安全,将一个泛型算法应用一个具体的类型时,编译器和CLR能理解开发人员的意图,并保证只有与指定数据类型兼容的对象才能随同算法使用。若试图使用不兼容类型的一个对象,会造成编译时错误,或在运行时抛出异常。试图将一个String对象传给Add方法,造成了编译器报错。
3,更加清晰的代码,由于编译器强制类型安全性,所以减少了源代码中必须进行的转型次数。这意味着代码更容易编写和维护。在SomeMethod的最后一行,开发人员不需要使用一个(DateTime)转型将索引器的结果存储到dt变量中。
4,更佳的性能,在有泛型之前,要想定义一个常规化的算法,它的所有成员都要定义成操作object数据类型。要用这个算法来操作值类型的实例,CLR必须在调用算法的成员之前对值类型实例进行装箱。
比较List算法和FLC非泛型ArrayList算法的性能。就知道泛型性能问题。