日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

泛型

 XXG學(xué)習(xí)園 2012-04-13

泛型是 C#2.0 語(yǔ)言和公共語(yǔ)言運(yùn)行庫(kù) (CLR) 中的一個(gè)新功能。泛型將類型參數(shù)的概念引入 .NET Framework,類型參數(shù)使得設(shè)計(jì)如下類和方法成為可能:這些類和方法將一個(gè)或多個(gè)類型的指定推遲到客戶端代碼聲明并實(shí)例化該類或方法的時(shí)候。例如,通過(guò)使用泛型類型參數(shù) T,可以編寫其他客戶端代碼能夠使用的單個(gè)類,而不致引入運(yùn)行時(shí)強(qiáng)制轉(zhuǎn)換或裝箱操作.
使用泛型類型可以最大限度地重用代碼、保護(hù)類型的安全以及提高性能。
泛型最常見的用途是創(chuàng)建集合類。

    .NET Framework 類庫(kù)在 System.Collections.Generic 命名空間中包含幾個(gè)新的泛型集合類。應(yīng)盡可能地使用這些類來(lái)代替普通的類,如 System.Collections 命名空間中的 ArrayList,HashTable等。下面我們就來(lái)說(shuō)下,幾個(gè)泛型集合類的用法:一.Dictionary 和HashTable類似此類在 .NET Framework 2.0 版中是新增的。表示鍵和值的集合。命名空間:System.Collections.Generic,程序集:mscorlib(在mscorlib.dll 中)
    class TestGenericList
    {
         static void Main()
        {
            //聲明對(duì)象,參數(shù)表示,鍵是int類型,值是string類型
            Dictionary<int, string> fruit = new Dictionary<int, string>();
            try{
                 //加入重復(fù)鍵會(huì)引發(fā)異常
                fruit.Add(1, "蘋果");
                fruit.Add(2, "桔子");
                fruit.Add(3, "香蕉");
                fruit.Add(4, "菠蘿");             
                //參數(shù)錯(cuò)誤將引發(fā)異常,如下所示
                 //fruit.Add("5", "aa");
            }
            catch (ArgumentException)
            {
                Console.WriteLine("添加錯(cuò)誤?。?!");
            }
                  //因?yàn)橐肓朔盒停枣I取出后不需要進(jìn)行Object到int的轉(zhuǎn)換,值的集合也一樣
            foreach (int i in fruit.Keys)
            {
                Console.WriteLine("鍵是:{0} 值是:{1}",i,fruit);
            }       按鍵值對(duì)遍歷:
            foreach(KeyValuePair keyValue in fruit)
            {
                 Console.WriteLine("鍵是:{0} 值是:{1}", keyValue.Key, keyValue.Value);
            }
            //刪除指定鍵,值
            fruit.Remove(1);
             //判斷是否包含指定鍵
            if (fruit.ContainsKey(1))
            {
                Console.WriteLine("包含此鍵");
            }
            //清除集合中所有對(duì)象
            fruit.Clear();
        }
    }    Dictionary遍歷輸出的順序,就是加入的順序,這點(diǎn)與Hashtable不同,其它方法如:ContainsKey ,ContainsValue ,Remove 等,使用方法基本一致。二、List類     注意:此類在 .NET Framework 2.0 版中是新增的。表示可通過(guò)索引訪問(wèn)的對(duì)象的強(qiáng)類型列表。提供用于對(duì)列表進(jìn)行搜索、排序和操作的方法。命名空間:System.Collections.Generic,程序集:mscorlib(在 mscorlib.dll 中),List 類是 ArrayList 類的泛型等效類。    //聲明一個(gè)泛型類   
    class TestGenericList
    {
        static void Main()
        {
            //聲明一個(gè)List對(duì)象和ArrayList對(duì)應(yīng),只加入string參數(shù)
            List<string> names = new List<string>();
            names.Add("喬峰");
            names.Add("歐陽(yáng)峰");
            names.Add("馬蜂");
            //遍歷List
            foreach (string name in names)
            {
                Console.WriteLine(name);
            }
            //向List中插入元素
            names.Insert(2, "張三峰");
            //移除指定元素
            names.Remove("馬蜂");            
        }
    }
    在決定使用 List 還是使用 ArrayList 類(兩者具有類似的功能)時(shí),記住 List 類在大多數(shù)情況下執(zhí)行得更好并且是類型安全的。如果對(duì) List 類的類型 T 使用引用類型,則兩個(gè)類的行為是完全相同的。但是,如果對(duì)類型 T 使用值類型,則需要考慮實(shí)現(xiàn)和裝箱問(wèn)題。    如果對(duì)類型 T 使用值類型,則編譯器將特別針對(duì)該值類型生成 List 類的實(shí)現(xiàn)。這意味著不必對(duì) List 對(duì)象的列表元素進(jìn)行裝箱就可以使用該元素,并且在創(chuàng)建大約 500 個(gè)列表元素之后,不對(duì)列表元素裝箱所節(jié)省的內(nèi)存將大于生成該類實(shí)現(xiàn)所使用的內(nèi)存。   其實(shí)我們也可以自己定義一個(gè)泛型類,如下所示:
    //聲明一個(gè)泛型類
    public class ItemList<T>
    {
        void Add(T item) { }
    }
    class TestGenericList
    {
        private class ExampleClass { }
        static void Main()
        {
            // 聲明一個(gè)對(duì)象,只能加入int型
            ItemList<int> list1 = new ItemList<int>();            //聲明一個(gè)對(duì)象,只能加入Student類型,Student類為自定義類
            ItemList<Student> list2 = new ItemList<Student>();        }
    }   泛型的用法還有很多種,如泛型方法,泛型委托,泛型接口等。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多