做泰迪狗网站的意义,兰亭集势的网站平台建设,涞水县建设局网站,无锡网络科技有限公司如果希望构建一个集合容器#xff0c;会用到ArrayList array new ArrayList(); ArrayList有几个缺点#xff1a;1 无法保证容器中的类型安全#xff08;类型一致问题#xff09; 2 存进arralist的数据#xff0c;CIL会自动进行装箱#xff0c;也就是保存进ArrayList中的…如果希望构建一个集合容器会用到ArrayList array new ArrayList(); ArrayList有几个缺点1 无法保证容器中的类型安全类型一致问题 2 存进arralist的数据CIL会自动进行装箱也就是保存进ArrayList中的都将是Object类型进行了不必要的撞向拆箱问题 关于问题1的解释 而泛型的出现解决了上面两个问题 一般情况下存进array通常都是同一种类型。但ArrayList无法去控制类型相同也就是说下面这段代码不会抛出异常 string newstring Hello World; int i ; Car car new Car(carname); // 一个假设的类 array.Add(a); array.Add(i); array.add(car); 假设要控制这个array去存储相同的类型只能够用如下类来实现 public class CarCollection: IEnumberable { private ArrayList arCars new ArrayList(); public CarCollection(){} public Car GetCar(int pos) { return (Car)arCars[pos]; } public void AddCar(Car c) { arCars.Add(c); } ....... } 假如有众多的类需要类型安全的容器对象则需要添加多个容器类导致大量重复代码以及困难的维护工作。 ListT就可以解决这个问题。 关于问题2的解释 ArrayList array new ArrayList(); array.Add(10); //装箱 int i (int)array[0]; //拆箱 Console.WriteLine(The Value of array[0] is i); //装箱 想想一下如果用Listint 可以省去前两次的装箱/拆箱动作。转载于:https://www.cnblogs.com/huangwj21/archive/2010/07/22/1783193.html