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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

探秘C#中的yield關(guān)鍵字

2019-11-17 02:52:57
字體:
供稿:網(wǎng)友

探秘C#中的yield關(guān)鍵字

在"C#中,什么時(shí)候用yield return"中,我們了解到:使用yield return返回集合,不是一次性加載到內(nèi)存中,而是客戶端每調(diào)用一次就返回一個(gè)集合元素,是一種"按需供給"。本篇來重溫yield return的用法,探秘yield背后的故事并自定義一個(gè)能達(dá)到y(tǒng)ield return相同效果的類,最后體驗(yàn)yield break的用法。

□ 回顧yield return的用法

以下代碼創(chuàng)建一個(gè)集合并遍歷集合。

   class PRogram
    {
        static Random r = new Random();
        static IEnumerable<int> GetList(int count)
        {
            List<int> list = new List<int>();
            for (int i = 0; i < count; i++)
            {
                list.Add(r.Next(10));
            }
            return list;
        }
        static void Main(string[] args)
        {
            foreach(int item in GetList(5))
                Console.WriteLine(item);
            Console.ReadKey();
        }
    }

使用yield return也能獲得同樣的結(jié)果。修改GetList方法為:

        static IEnumerable<int> GetList(int count)
        {
            for (int i = 0; i < count; i++)
            {
                yield return r.Next(10);
            }
        }
通過斷點(diǎn)調(diào)試發(fā)現(xiàn):客戶端每顯示一個(gè)集合中的元素,都會(huì)到GetList方法去獲取集合元素。

□ 探密yield

使用yield return獲取集合,并遍歷。

    class Program
    {
        public static Random r = new Random();
        static IEnumerable<int> GetList(int count)
        {
            for (int i = 0; i < count; i++)
            {
                yield return r.Next(10);
            }

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 苗栗县| 镇江市| 宜川县| 友谊县| 福安市| 丰都县| 西华县| 阿尔山市| 武冈市| 潼关县| 临沭县| 大余县| 昭平县| 赣州市| 芦溪县| 玉屏| 枝江市| 望江县| 西昌市| 鄱阳县| 萨嘎县| 海安县| 独山县| 赤城县| 江陵县| 郴州市| 当阳市| 鱼台县| 清河县| 屏边| 沅江市| 梁山县| 安泽县| 娄烦县| 镇雄县| 吐鲁番市| 定安县| 玉门市| 饶阳县| 孝昌县| 逊克县|