.NET12.0相对于.NET 1.1增加了泛型的内容,其特点我认为有:
(1)可以在很大程度上,简化模块的重用,使用泛型可以动态指定数据的类型(简单类型和复杂类型,或者说值类型和引用类型).这样就使得很多不同类型的相同操作,都用一个泛型类型来代替就可以。
(2)泛型在写集合的应用时,特别有用.在.NET1.1中,也有集合类(在System.Collection命名空间中).但是.NET1.1的集合类往往对于值类型的数据要装箱(如果数据量大的话,这样在很大程度上影响了程序的性能).所以在.NET 2.0中,引入了一个新的命名空间(System.Collection.Generic)和一些新的泛型类型.这样,在对性能要求非常严格的程序中,泛型也许会是一个不错的解决方案.但是今天写了个测试程序,发现时间并没有快,不知道什么原因:请高手指点.
程序如下:
class GenericDemoMain
{
public static void Main()
{
#region ***************使用泛型*****************
DateTime old = DateTime.Now;
List<long> l = new List<long>();
for (long i = 0; i < 100000; i++)
{
l.Add(i);
}
foreach (long i in l)
{
Console.Write(i + " ");
}
//获取处理时间
string ge = (DateTime.Now.Subtract(old)).ToString();
#endregion
#region ****************使用ArrayList*****************
DateTime old1 = DateTime.Now;
ArrayList al = new ArrayList();
for (long i = 0; i < 100000; i++)
{
al.Add(i);
}
foreach (long i in al)
{
Console.Write(i + " ");
}
//输出处理时间,作比较
Console.WriteLine("进行装箱操作所用时间:"+(DateTime.Now.Subtract(old1)).ToString());
Console.WriteLine("使用泛型所用时间:" + ge);
#endregion
}
}