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

首頁 > 編程 > C# > 正文

C#中的yield關鍵字的使用方法介紹

2020-01-24 03:24:59
字體:
來源:轉載
供稿:網友
yield不能單獨放在try-catch塊中,如果try中有yield那么,這個try塊后面不許跟著finally塊;也不能出現在匿名方法中,所以,看起來yield似乎并不常用,但是也不是不用。我前面有一個關于迭代器的例子《C#中的迭代器基礎》中就用到了。可以參考一下那個例子,但是這里要再說的一點是我后來看到的,yield是跟return一起使用的,形式為yield return xxx,一般來說單獨的return在每個方法中只能存在一個。而yield則不同的是,可以出現連續多個。
迭代器,是一個連續的集合,出現多個yield return其實就是將這多個的yield return元素按照出現的順序存儲在迭代器的集合中而已。形如下面的形式:
復制代碼 代碼如下:

 public class CityCollection : IEnumerable<string>
  {
      string[] _Items = new string[] { "黑龍江", "吉林", "遼寧", "山東", "山西", "陜西", "河北", "河南", "湖南", "湖北", "四川", "廣西", "云南", "其他" };
      IEnumerator<string> IEnumerable<string>.GetEnumerator()
      {
          for (int i = 0; i < _Items.Length; i++)
          {
              yield return _Items[i];
              yield return string.Format("Index:{0}", i);
         }
     }
     IEnumerator IEnumerable.GetEnumerator()
     {
         for (int i = 0; i < _Items.Length; i++)
         {
             yield return _Items[i];
         }
     }
 }

而返回的迭代結果就是這樣的:
復制代碼 代碼如下:

  黑龍江
  Index:0
  吉林
  Index:1
  遼寧
  Index:2
  山東
  Index:3
  山西
 Index:4
 陜西
 Index:5
 河北
 Index:6
 河南
 Index:7
 湖南
 Index:8
 湖北
 Index:9
 四川
 Index:10
 廣西
 Index:11
 云南
 Index:12
 其他
 Index:13

每一條yield return都是迭代器中的一個元素。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 玉屏| 隆林| 赤壁市| 江阴市| 平南县| 和静县| 周至县| 德兴市| 石嘴山市| 清远市| 安图县| 广饶县| 从化市| 井陉县| 平利县| 固原市| 镇康县| 晴隆县| 彭州市| 自治县| 东平县| 乌拉特后旗| 平凉市| 江川县| 九龙坡区| 依兰县| 台湾省| 固镇县| 周至县| 永平县| 承德市| 海兴县| 达日县| 合水县| 剑阁县| 云梦县| 泽普县| 长宁县| 海丰县| 德钦县| 井研县|