迭代器

迭代器返回的是一个枚举器
代码

  
  static void Main(string[] args)
        {
            MyClass myClass = new MyClass();
            foreach (string item in myClass)
            {
                Console.WriteLine($"{item}");
            }
            Console.ReadLine();
        }
    }
    class MyClass
    {
    public IEnumerator<string> GetEnumerator()
    {

        return  BlackAndWhite();

    }
    //利用迭代器返回是一个枚举器。
    public IEnumerator<string> BlackAndWhite()
    {
        yield return "black";
        yield return "gray";
        yield return "white";
    }

}


示例2用迭代器创建一个可枚举体

  
         static void Main(string[] args)
        {
            MyClass myClass = new MyClass();
            foreach (string item in myClass.BlackAndWhite())//不是可枚举类的时候,可以使用这个方式循环。
            {
                Console.WriteLine($"{item}");
            }
            foreach (string item in myClass)
            {
                Console.WriteLine($"{item}");
            }
            Console.ReadLine();
        }
    }
    class MyClass
    {
    public IEnumerator<string> GetEnumerator()//当这个没有的时候,不是可枚举类。
    {

        IEnumerable<string> myEnumerator = BlackAndWhite();
        return myEnumerator.GetEnumerator();

    }
    public IEnumerable<string> BlackAndWhite()
    {
        yield return "black";
        yield return "gray";
        yield return "white";
    }

}

上一篇:汇编语言 简单个位加法


下一篇:C++创建对象是否应该加括号的问题