日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

对于泛型的理解

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

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

總結

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

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