一、泛型

假设我要写个公用的输出传入参数的方法(不用泛型),因为万物皆对象的理由,我先定义一个方法show(object obj),如下面所示:

        public static void Show(object obj)
        {
            Console.WriteLine(obj.ToString());
        }

执行这个方法

            int i = 1;  //装箱
            Show(i);

如果传入的是值类型,值类型转换为引用类型,我们知道会发生装箱,这是对性能的损害,想想如果是个集合,就得多次执行装箱、拆箱操作。如ArrayList类,ArrayList储存对象,Add()方法定义为需要把一个对象作为参数,如果传入的值类型,就得装箱,在读取ArrayList中的值时,又得进行拆箱,如下面代码所示:

大数据培训,云培训,数据挖掘培训,云计算培训,高端软件开发培训,项目经理培训

            var list = new ArrayList();
           &n