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

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

C#中的yield

2019-11-17 02:48:13
字體:
供稿:網(wǎng)友
C#中的yield

一、C#中yield關(guān)鍵字用于遍歷循環(huán)中,yield語句的兩種形式

yield return用于返回IEnumerable<T>,

yield break用于終止循環(huán)遍歷。

二、yield return的用法

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

C# 代碼 復(fù)制
    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);            }        }        static void Main(string[] args)        {            foreach(int item in GetList(5))                Console.WriteLine(item);            Console.ReadKey();        }    }

生成項(xiàng)目,并用反編譯可執(zhí)行文件。查看GetList方法,發(fā)現(xiàn)該方法返回的是一個(gè)GetList類的實(shí)例。原來yield return是"語法糖",其本質(zhì)是生成了一個(gè)GetList的實(shí)例。

yield return的用法

那GetList實(shí)例是什么呢?點(diǎn)擊反編譯工具中<GetList>鏈接查看

yield return的用法

分析代碼后可以知道

1、原來GetList類實(shí)現(xiàn)了IEnumerable和IEnumerator的泛型、非泛型接口 2、yield return返回的集合之所以能被迭代、遍歷,是因?yàn)镚etList內(nèi)部有迭代器 3、yield return之所以能實(shí)現(xiàn)"按需供給",是因?yàn)镚etList內(nèi)部有一個(gè)_state字段記錄這上次的狀態(tài)

三、yield break的用法

使用yield break可以在獲取集合的時(shí)候,當(dāng)符合某種條件就終止獲取集合。

C# 代碼 復(fù)制
    class Program
    {        static Random rand = new Random();        static IEnumerable<int> GetList()        {            while (true)
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 定南县| 濉溪县| 富锦市| 扎兰屯市| 深水埗区| 穆棱市| 闻喜县| 响水县| 资源县| 鄂温| 资阳市| 炉霍县| 昌黎县| 旬邑县| 南宫市| 盐津县| 桑植县| 黄浦区| 泸州市| 平阴县| 毕节市| 类乌齐县| 博白县| 藁城市| 宁乡县| 刚察县| 古交市| 蚌埠市| 尉氏县| 红原县| 余干县| 东宁县| 噶尔县| 静宁县| 堆龙德庆县| 阿拉善左旗| 隆子县| 马关县| 若尔盖县| 怀来县| 横山县|