程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#中foreach道理和模仿的完成

C#中foreach道理和模仿的完成

編輯:C#入門知識

C#中foreach道理和模仿的完成。本站提示廣大學習愛好者:(C#中foreach道理和模仿的完成)文章只能為提供參考,不一定能成為您想要的結果。以下是C#中foreach道理和模仿的完成正文


本文實例講述了C#中foreach道理和模仿的完成辦法,分享給年夜家供年夜家參考。詳細以下:

public class Person:IEnumerable     //界說一個person類  而且 完成IEnumerable 接口  (或許不消完成此接口 直接在類 //外面寫個GetEnumerator()辦法)
{
        string[] names = { "小楊", "科比布萊恩特", "凱文杜蘭特", "卡門安東尼" }; //在Person類外面界說一個字符串數組,以便用來模擬對象的索引拜訪

        public int Count { get { return names.Length; } }    //可以經由過程對象拜訪此屬性
    
        public string this[int index]    //界說一個索引器
        {
            get { return names[index]; }
        }


        public IEnumerator GetEnumerator()
        {
            return new MyClass(names);             //現實上經由過程此辦法就是前往一個可以完成輪回的類的對象 
                                                   // 用他的對象來挪動索引
        }
}

public class MyClass :IEnumerator
{
  public MyClass(string[] names) //一個參數的結構函數,用來和要遍歷的類的停止聯系關系
  {
      name = names;
  }
  private string[] name;  //用此字段來寄存吸收過去的數組
  int index = -1;
  public object Current   //獲得以後索引的元素的值
  {
      get
      {
   if (index<0)    //預備狀況是-1,開端輪回了在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);
            }
            //現實履行foreach就相當於履行上面幾句話:
            Console.WriteLine("==================================================");
            IEnumerator p1 = p.GetEnumerator();
            while (p1.MoveNext())
            {
                string str=(string)p1.Current;
                Console.WriteLine(str);
            }
            Console.ReadKey();
        }
}

願望本文所述對年夜家的C#法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved