欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

        public int Count { get { return names.Length; } }    //可以通過對象訪問此屬性
    
        public string this[int index]    //定義一個索引器
        {
            get { return names[index]; }
        }


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

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

在主方法里面:

復制代碼 代碼如下:
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);
            }
            //實際執(zhí)行foreach就相當于執(zhí)行下面幾句話:
            Console.WriteLine("==================================================");
            IEnumerator p1 = p.GetEnumerator();
            while (p1.MoveNext())
            {
                string str=(string)p1.Current;
                Console.WriteLine(str);
            }
            Console.ReadKey();
        }
}

希望本文所述對大家的C#程序設計有所幫助。

相關文章

  • C#初始化數(shù)組的方法小結

    C#初始化數(shù)組的方法小結

    這篇文章主要介紹了C#初始化數(shù)組的方法,總結分析了C#聲明與初始化一維數(shù)組及多維數(shù)組的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • C#實現(xiàn)的簡單隨機數(shù)產生器功能示例

    C#實現(xiàn)的簡單隨機數(shù)產生器功能示例

    這篇文章主要介紹了C#實現(xiàn)的簡單隨機數(shù)產生器功能,涉及C#簡單界面布局、事件響應及隨機數(shù)生成相關操作技巧,需要的朋友可以參考下
    2017-09-09
  • 深入學習C#網(wǎng)絡編程之HTTP應用編程(上)

    深入學習C#網(wǎng)絡編程之HTTP應用編程(上)

    這篇文章主要介紹了如何學習C#網(wǎng)絡編程之HTTP應用編程的相關知識,文中講解的非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • C#向數(shù)據(jù)庫中插入或更新null空值與延遲加載lazy

    C#向數(shù)據(jù)庫中插入或更新null空值與延遲加載lazy

    這篇文章介紹了C#向數(shù)據(jù)庫中插入或更新null空值與延遲加載lazy,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C#驗證碼識別類完整實例

    C#驗證碼識別類完整實例

    這篇文章主要介紹了C#驗證碼識別類,以一個完整實例形式較為詳細的分析了驗證碼圖片處理所涉及的各種常用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • Unity 按鈕事件封裝操作(EventTriggerListener)

    Unity 按鈕事件封裝操作(EventTriggerListener)

    這篇文章主要介紹了Unity 按鈕事件封裝操作(EventTriggerListener),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • C#使用timer定時在屏幕上輸出信息的方法

    C#使用timer定時在屏幕上輸出信息的方法

    這篇文章主要介紹了C#使用timer定時在屏幕上輸出信息的方法,涉及C#中timer定時器的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • c#linq里的Skip和Take實現(xiàn)分頁或遍歷

    c#linq里的Skip和Take實現(xiàn)分頁或遍歷

    LINQ的優(yōu)勢在于它提供了一種直觀、類型安全的方式來操作各種類型的數(shù)據(jù),查詢常需要獲取一部分數(shù)據(jù),為了實現(xiàn)這一功能,LINQ提供了Take?和Skip運算符,Take運算符用于從一個序列中返回指定個數(shù)的元素,Skip運算符用于從一個序列中跳過指定個數(shù)的元素
    2024-01-01
  • WPF實現(xiàn)動畫效果的入門教程

    WPF實現(xiàn)動畫效果的入門教程

    WPF是一種用于創(chuàng)建Windows客戶端應用程序的UI框架,它讓我們能夠創(chuàng)建豐富的圖形界面,包括各種各樣的動畫效果,下面我們就來看看如何利用wpf實現(xiàn)簡單的動畫效果吧
    2023-09-09
  • Unity3d使用FairyGUI 自定義字體的操作

    Unity3d使用FairyGUI 自定義字體的操作

    由于本項目ui使用了第三方ui系統(tǒng) fairyGUI 所以此文章主要講述unity3d和fairygui搭配使用字體的過程
    2021-04-04

最新評論