国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

.NET泛型基礎

2019-11-18 17:02:28
字體:
來源:轉載
供稿:網友

泛型較為廣泛地被討論,這里寫到的只是作為新手的入門級認識。

泛型最常應用于集合類。

泛型的一個顯而易見的優點在于可以在許多操作中避免強制轉換或裝箱操作的成本或風險,拿ArrayList這個集合類來說,為了達到其通用性,集合元素都將向上轉換為object類型,對于值類型,更是有裝箱拆箱的成本:

static void Main(string[] args)

{

ArrayList al = new ArrayList();

al.Add(1);

}

在IL中是:

IL_0008:  ldc.i4.1

IL_0009:  box        [mscorlib]System.Int32

IL_000e:  callvirt   instance int32 [mscorlib]System.Collections.ArrayList::Add(object)

box操作就是裝箱,具體過程是把值類型從棧中彈出,放入堆中,同時把在堆中的地址壓入到棧中,頻繁出現這樣的操作,成本比較大。


所以在2.0中,遇到以上的應用,應該使用泛型集合類List<T>:

static void Main(string[] args)

{

    List<int> l = new List<int>();

    l.Add(1);

}

 

另一個比較常用的泛型集合類是Dictionary<T,T>,用于保存鍵值對:

static void Main(string[] args)

{

    Dictionary<int, string> dict = new Dictionary<int, string>();

    dict.Add(1, "SomeBook1");

    dict.Add(2, "SomeBook2");

    dict.Add(3, "SomeBook3");

 

    Console.WriteLine(dict[2]);//output:SomeBook2

    dict[2] = "SomeCD1";//modify

    Console.WriteLine(dict[2]);//output:SomeCD1

 

    dict.Remove(2);//delete

 

    foreach (KeyValuePair<int, string> kv in dict)

    {

        Console.WriteLine("Key = {0}, Value = {1}",kv.Key, kv.Value);

    }

}
http://www.survivalescaperooms.com/KissKnife/archive/2006/08/26/486807.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 扎兰屯市| 台北县| 景东| 莒南县| 九龙县| 芦山县| 牡丹江市| 四平市| 安顺市| 晋中市| 长子县| 监利县| 临泉县| 余干县| 余庆县| 田阳县| 泰州市| 佛学| 龙陵县| 正阳县| 颍上县| 梅州市| 收藏| 彩票| 井陉县| 朔州市| 合阳县| 北票市| 浦北县| 昆山市| 涿鹿县| 鄂伦春自治旗| 竹山县| 铅山县| 莱阳市| 酉阳| 海南省| 泸溪县| 姚安县| 个旧市| 麻江县|