日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

对于泛型的理解

發布時間:2025/3/15 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 对于泛型的理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如果希望構建一個集合容器,會用到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);

  }

  .......

}

假如有眾多的類需要類型安全的容器對象,則需要添加多個容器類,導致大量重復代碼以及困難的維護工作。

List<T>就可以解決這個問題。

?

關于問題2的解釋:

ArrayList array = new ArrayList();

array.Add(10); //裝箱

int i = (int)array[0]; //拆箱

Console.WriteLine("The Value of array[0] is" + i); //裝箱

想想一下,如果用List<int> 可以省去前兩次的裝箱/拆箱動作。

轉載于:https://www.cnblogs.com/huangwj21/archive/2010/07/22/1783193.html

總結

以上是生活随笔為你收集整理的对于泛型的理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。