国产探花免费观看_亚洲丰满少妇自慰呻吟_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都是迭代器中的一個元素。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大荔县| 邯郸县| 岱山县| 仁怀市| 同江市| 子洲县| 澄迈县| 奉贤区| 蓬安县| 布拖县| 固安县| 阜阳市| 外汇| 林西县| 五华县| 南宫市| 雷波县| 灵川县| 阳新县| 资溪县| 吐鲁番市| 昌黎县| 凤翔县| 庐江县| 江口县| 博湖县| 茌平县| 琼海市| 景德镇市| 大埔区| 会昌县| 岳西县| 北海市| 台湾省| 纳雍县| 始兴县| 高邮市| 永靖县| 肥西县| 太康县| 高阳县|