国产探花免费观看_亚洲丰满少妇自慰呻吟_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://m.survivalescaperooms.com/KissKnife/archive/2006/08/26/486807.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 林周县| 原阳县| 上栗县| 肇庆市| 瑞丽市| 聂拉木县| 聂荣县| 公主岭市| 巨野县| 綦江县| 潍坊市| 宁城县| 晋江市| 临沭县| 平乡县| 清涧县| 磐安县| 迁安市| 台东市| 梨树县| 渝北区| 固镇县| 蓝山县| 镇安县| 康马县| 福海县| 和顺县| 烟台市| 大庆市| 北宁市| 岑巩县| 宣城市| 灵石县| 苍山县| 武清区| 永定县| 大冶市| 襄樊市| 武穴市| 五大连池市| 临城县|