zoukankan      html  css  js  c++  java
  • 手动书写小代码-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之面向对象
    Python常用模块(logging&re&时间&random&os&sys&shutil&序列化&configparser&&hashlib)
    Python之模块与包
    2.1 、寻找元素 (重要的选择器和筛选器)
    4、循环语句 和 异常处理
    7、其他知识点
    2、函数 面向对象
    3、数据类型
    1、初识JavaScript
    2、css
  • 原文地址:https://www.cnblogs.com/chenyongblog/p/3175781.html
Copyright © 2011-2022 走看看