xiacy

导航

3.4.3 一个完整的泛型枚举---从0枚举到9

    class CountingEnumerable : IEnumerable<int>
    {

        #region IEnumerable<int> 成员

        public IEnumerator<int> GetEnumerator()
        {
            return new CountingEnumerator();
        }

        #endregion

        #region IEnumerable 成员

        IEnumerator IEnumerable.GetEnumerator()
        {
            return GetEnumerator();
        }

        #endregion
    }

    class CountingEnumerator : IEnumerator<int>
    {
        int current = -1;
        public bool MoveNext()
        {
            current++;
            return current < 10;
        }

        public int Current { get { return current; } }

        object IEnumerator.Current { get { return Current; } }

        public void Reset()
        {
            current = -1;
        }

        public void Dispose() { }
    }

    class Program
    {
        static void Main(string[] args)
        {
            CountingEnumerable counter = new CountingEnumerable();
            foreach (int x in counter)
            {
                Console.WriteLine(x);
            }
        }
    }

 

posted on 2012-05-01 13:57  xiacy  阅读(183)  评论(0编辑  收藏  举报