亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#中的yield關(guān)鍵字的使用方法介紹

 更新時間:2013年04月27日 10:59:40   作者:  
yield這個關(guān)鍵字是和迭代器掛鉤的,而且是與return一起以yield return的形式合用的,用來返回迭代器中的條目。
yield不能單獨放在try-catch塊中,如果try中有yield那么,這個try塊后面不許跟著finally塊;也不能出現(xiàn)在匿名方法中,所以,看起來yield似乎并不常用,但是也不是不用。我前面有一個關(guān)于迭代器的例子《C#中的迭代器基礎(chǔ)》中就用到了。可以參考一下那個例子,但是這里要再說的一點是我后來看到的,yield是跟return一起使用的,形式為yield return xxx,一般來說單獨的return在每個方法中只能存在一個。而yield則不同的是,可以出現(xiàn)連續(xù)多個。
迭代器,是一個連續(xù)的集合,出現(xiàn)多個yield return其實就是將這多個的yield return元素按照出現(xiàn)的順序存儲在迭代器的集合中而已。形如下面的形式:
復(fù)制代碼 代碼如下:

 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];
         }
     }
 }

而返回的迭代結(jié)果就是這樣的:
復(fù)制代碼 代碼如下:

  黑龍江
  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都是迭代器中的一個元素。

相關(guān)文章

  • C# 設(shè)計模式系列教程-原型模式

    C# 設(shè)計模式系列教程-原型模式

    原型模式隱藏了對象的創(chuàng)建細(xì)節(jié),對有些初始化需要占用很多資源的類來說,對性能也有很大提高。
    2016-06-06
  • 深入DropDownList用法的一些學(xué)習(xí)總結(jié)分析

    深入DropDownList用法的一些學(xué)習(xí)總結(jié)分析

    本篇文章是對DropDownList的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • C#封裝的常用文件操作類實例

    C#封裝的常用文件操作類實例

    這篇文章主要介紹了C#封裝的常用文件操作類,實例分析了C#文件操作的技巧,涉及C#的讀寫、復(fù)制、刪除等常用操作,非常具有實用價值,需要的朋友可以參考下
    2015-03-03
  • C# wpf解決Popup彈出位置異常問題解決

    C# wpf解決Popup彈出位置異常問題解決

    本文主要介紹了C# wpf解決Popup彈出位置異常問題解決,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • C#中的三種定時計時器Timer用法介紹

    C#中的三種定時計時器Timer用法介紹

    這篇文章介紹了C#中的三種定時計時器Timer的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • 基于C#實現(xiàn)端口掃描器(單線程和多線程)

    基于C#實現(xiàn)端口掃描器(單線程和多線程)

    本文主要介紹了基于C#分別通過單線程和多線程實現(xiàn)端口掃描,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 利用C#實現(xiàn)網(wǎng)絡(luò)爬蟲

    利用C#實現(xiàn)網(wǎng)絡(luò)爬蟲

    這篇文章主要介紹了利用C#實現(xiàn)網(wǎng)絡(luò)爬蟲,完整的介紹了C#實現(xiàn)網(wǎng)絡(luò)爬蟲詳細(xì)過程,感興趣的小伙伴們可以參考一下
    2016-03-03
  • WPF InkCanvas基本操作方法詳解

    WPF InkCanvas基本操作方法詳解

    這篇文章主要為大家詳細(xì)介紹了WPF InkCanvas基本的操作方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • C#如何將DLL打包到程序中

    C#如何將DLL打包到程序中

    這篇文章主要介紹了C#如何將DLL打包到程序中問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • C#內(nèi)存管理CLR深入講解(下篇)

    C#內(nèi)存管理CLR深入講解(下篇)

    本文詳細(xì)講解了C#內(nèi)存管理CLR的內(nèi)存分配和對大對象回收,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01

最新評論