• 手动书写小代码-foreach实现机制


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Collections;
    
    namespace 枚举的实现机制
    {
        class Program
        {
            static void Main(string[] args)
            {
                int[] arr = { 1,2,3,4,6};
                IEnumerator ie = arr.GetEnumerator();
                while(ie.MoveNext()==true)
                {
                    int i = (int)ie.Current;
                    Console.WriteLine(i);
                }
                Console.ReadLine();
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Collections;
    
    namespace 详细实现机制
    {
        class ColorEnumerator:IEnumerator//实现IEnumerator接口
        {
            string[] Colors;
            int Position = -1;
            //实现Current方法
            public object Current
            {
                get
                { 
                    if(Position==-1)
                    {
                        throw new InvalidOperationException();//当前状态无效是引发的异常
                    }
                    else if(Position==Colors.Length)
                    {
                        throw new InvalidOperationException();
                    }
                    return Colors[Position];
                }
            }
            public bool MoveNext()
            {
                if (Position < Colors.Length - 1)
                {
                    Position++;
                    return true;
                }
                else
                {
                    return false;
                }
            }
            public void Reset()
            {
                Position = -1;
            }
            public ColorEnumerator(string[]theColors)
            { 
                Colors=new string[theColors.Length];
                for (int i = 0; i < theColors.Length;i++ )
                {
                    Colors[i]=theColors[i];
                    Console.WriteLine(Colors[i]);
                }
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace 详细实现机制
    {
        class Program
        {
            static void Main(string[] args)
            {
                string[] arr = { "Red", "Blue", "Yellow", "Green", "Gray", "Orange" };
                ColorEnumerator color = new ColorEnumerator(arr);
                Console.ReadKey();
            }
        }
    }
  • 相关阅读:
    Python类的继承(进阶5)
    面向对象编程基础(进阶4)
    Python模块(进阶3)
    Python函数式编程(进阶2)
    python多线程
    Ternary Search Tree Java实现
    Trie和Ternary Search Tree介绍
    索引时利用K-邻近算法过滤重复歌曲
    Sql排名和分组排名
    Lucene和jackson冲突
  • 原文地址:https://www.cnblogs.com/chenyongblog/p/3175781.html
Copyright © 2020-2023  润新知