最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#中foreach原理以及模擬的實(shí)現(xiàn)

 更新時(shí)間:2014年10月21日 14:54:11   投稿:shichen2014  
這篇文章主要介紹了C#中foreach原理以及模擬的實(shí)現(xiàn)方法,備有詳盡的注釋,便于深入理解C#原理,需要的朋友可以參考下

本文實(shí)例講述了C#中foreach原理以及模擬的實(shí)現(xiàn)方法,分享給大家供大家參考。具體如下:

復(fù)制代碼 代碼如下:
public class Person:IEnumerable     //定義一個(gè)person類(lèi)  并且 實(shí)現(xiàn)IEnumerable 接口  (或者不用實(shí)現(xiàn)此接口 直接在類(lèi) //里面寫(xiě)個(gè)GetEnumerator()方法)
{
        string[] names = { "小楊", "科比布萊恩特", "凱文杜蘭特", "卡門(mén)安東尼" }; //在Person類(lèi)里面定義一個(gè)字符串?dāng)?shù)組,以便用來(lái)模仿對(duì)象的索引訪問(wèn)

        public int Count { get { return names.Length; } }    //可以通過(guò)對(duì)象訪問(wèn)此屬性
    
        public string this[int index]    //定義一個(gè)索引器
        {
            get { return names[index]; }
        }


        public IEnumerator GetEnumerator()
        {
            return new MyClass(names);             //實(shí)際上通過(guò)此方法就是返回一個(gè)可以實(shí)現(xiàn)循環(huán)的類(lèi)的對(duì)象 
                                                   // 用他的對(duì)象來(lái)移動(dòng)索引
        }
}

public class MyClass :IEnumerator
{
  public MyClass(string[] names) //一個(gè)參數(shù)的構(gòu)造函數(shù),用來(lái)和要遍歷的類(lèi)的進(jìn)行關(guān)聯(lián)
  {
      name = names;
  }
  private string[] name;  //用此字段來(lái)存放接收過(guò)來(lái)的數(shù)組
  int index = -1;
  public object Current   //獲取當(dāng)前索引的元素的值
  {
      get
      {
   if (index<0)    //準(zhǔn)備狀態(tài)是-1,開(kāi)始循環(huán)了在MoveNext中加1
   {
       return null;
   }
   else
   {
       return name[index];
   }
      }
  }
  public bool MoveNext()
  {
      ++index;  //每調(diào)用此方法就將索引往下+1
      if (index<name.Length)
      {
   return true;
      }
      else
      {
   return false;
      }
  }
  public void Reset()
  {
     index=-1;
  }
}

在主方法里面:

復(fù)制代碼 代碼如下:
class Program
{
        static void Main(string[] args)
        {
            Person p = new Person();
            //for (int i = 0; i < p.Count; i++)
            //{
            //    Console.WriteLine(p[i]);
            //}
            foreach (string item in p)
            {
                Console.WriteLine(item);
            }
            //實(shí)際執(zhí)行foreach就相當(dāng)于執(zhí)行下面幾句話:
            Console.WriteLine("==================================================");
            IEnumerator p1 = p.GetEnumerator();
            while (p1.MoveNext())
            {
                string str=(string)p1.Current;
                Console.WriteLine(str);
            }
            Console.ReadKey();
        }
}

希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • C#使用Objects?Comparer進(jìn)行對(duì)象比較

    C#使用Objects?Comparer進(jìn)行對(duì)象比較

    本文主要介紹了C#使用Objects?Comparer進(jìn)行對(duì)象比較,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • C#中實(shí)現(xiàn)登錄功能的完整步驟

    C#中實(shí)現(xiàn)登錄功能的完整步驟

    這篇文章主要給大家介紹了關(guān)于C#中實(shí)現(xiàn)登錄功能的相關(guān)資料,我們?cè)谑褂肅#做項(xiàng)目的時(shí)候,基本上都需要制作登錄界面,需要的朋友可以參考下
    2021-06-06
  • C#中方法的直接調(diào)用、反射調(diào)用與Lambda表達(dá)式調(diào)用對(duì)比

    C#中方法的直接調(diào)用、反射調(diào)用與Lambda表達(dá)式調(diào)用對(duì)比

    這篇文章主要介紹了C#中方法的直接調(diào)用、反射調(diào)用與Lambda表達(dá)式調(diào)用對(duì)比,本文著重講解了方法的三種調(diào)用方法以及它們的性能對(duì)比,需要的朋友可以參考下
    2015-06-06
  • C# 多線程中經(jīng)常訪問(wèn)同一資源可能造成哪些問(wèn)題

    C# 多線程中經(jīng)常訪問(wèn)同一資源可能造成哪些問(wèn)題

    這篇文章主要介紹了C# 多線程中經(jīng)常訪問(wèn)同一資源可能造成哪些問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • C#字符串加密解密方法實(shí)例

    C#字符串加密解密方法實(shí)例

    這篇文章主要介紹了C#字符串加密解密方法,實(shí)例分析了C#對(duì)字符串加密與解密的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • 使用C#代碼獲取存儲(chǔ)過(guò)程返回值

    使用C#代碼獲取存儲(chǔ)過(guò)程返回值

    這篇文章主要介紹了使用C#代碼獲取存儲(chǔ)過(guò)程返回值,需要的朋友可以參考下
    2015-11-11
  • C#實(shí)現(xiàn)UDP通信方式

    C#實(shí)現(xiàn)UDP通信方式

    文章介紹了如何使用C#實(shí)現(xiàn)UDP通信,包括UDP服務(wù)器和客戶端的實(shí)現(xiàn)步驟和示例代碼,服務(wù)器關(guān)鍵類(lèi)為UdpClient和IPEndPoint,實(shí)例化對(duì)象后可以通過(guò)異步任務(wù)發(fā)送數(shù)據(jù)并接收數(shù)據(jù),客戶端同樣使用UdpClient和IPEndPoint,連接到遠(yuǎn)程服務(wù)器后開(kāi)新任務(wù)接收數(shù)據(jù)
    2025-01-01
  • WPF開(kāi)發(fā)txt閱讀器實(shí)現(xiàn)目錄提取功能

    WPF開(kāi)發(fā)txt閱讀器實(shí)現(xiàn)目錄提取功能

    這篇文章主要為大家詳細(xì)介紹了WPF開(kāi)發(fā)txt閱讀器時(shí)如何實(shí)現(xiàn)目錄提取功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-06-06
  • C#基于NPOI操作Excel

    C#基于NPOI操作Excel

    這篇文章介紹了C#基于NPOI操作Excel的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • 關(guān)于C#委托三種調(diào)用的分享使用

    關(guān)于C#委托三種調(diào)用的分享使用

    這篇文章主要介紹了關(guān)于C#委托三種調(diào)用的分享使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11

最新評(píng)論

博野县| 广平县| 安丘市| 耒阳市| 灌阳县| 长汀县| 吉隆县| 肃北| 普格县| 鱼台县| 汉寿县| 侯马市| 财经| 渝中区| 无锡市| 丹巴县| 塔河县| 桦甸市| 祁东县| 长顺县| 瓦房店市| 邢台市| 盘山县| 柳州市| 高陵县| 婺源县| 长武县| 神木县| 乡宁县| 常熟市| 新巴尔虎右旗| 兴和县| 军事| 英吉沙县| 望江县| 株洲县| 德化县| 浙江省| 卢湾区| 定州市| 南华县|