实现IEnumerable.错误.

Abi*_*Ali -3 c# ienumerable

我的代码是:

using System;
using System.Threading;
using System.Collections;
using System.Collections.Generic;

namespace IEnumerable
{
    public class MyEnumerable<T> : IEnumerable<T>
    {
        public MyEnumerable(T[] items)
        {
            this.items = items;
        }

        public IEnumerator<T> GetEnumerator()
        {
            return new NestedEnumerator(this);
        }

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

        // The enumerator definition.
        class NestedEnumerator : IEnumerator<T>
        {
            public NestedEnumerator(MyEnumerable<T> coll)
            {
                Monitor.Enter(coll.items.SyncRoot);
                this.index = -1;
                this.coll = coll;
            }

            public T Current
            {
                get { return current; }
            }

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

            public bool MoveNext()
            {
                if (++index >= coll.items.Length)
                {
                    return false;
                }
                else
                {
                    current = coll.items[index];
                    return true;
                }
            }

            public void Reset()
            {
                current = default(T);
                index = 0;
            }

            public void Dispose()
            {
                try
                {
                    current = default(T);
                    index = coll.items.Length;
                }
                finally
                {
                    Monitor.Exit(coll.items.SyncRoot);
                }
            }

            private MyEnumerable<T> coll;
            private T current;
            private int index;
        }

        private T[] items;
    }

    public class EntryPoint
    {
        static void Main()
        {
            MyEnumerable<int> integers = new MyEnumerable<int>(new int[] { 1, 2, 3, 4 });

            foreach (int n in integers)
            {
                Console.WriteLine(n);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在实现这段代码但我得到一个错误.任何人都可以帮我解决错误免费使用此代码吗?请帮忙.我的错误是:

1 - >'IEnumerable'是'命名空间',但用作'类型'

2 - >'IEnumerable.MyEnumerable'没有实现接口成员'System.Collections.IEnumerable.GetEnumerator()'.'IEnumerable.MyEnumerable.GetEnumerator()'无法实现'System.Collections.IEnumerable.GetEnumerator()',因为它没有匹配的返回类型'System.Collections.IEnumerator'.

Jam*_*xon 7

IEnumerable当它已经是系统中的类型时,错误很可能是您用作命名空间.

这意味着您的引用IEnumerable是引用当前命名空间而不是IEnumerable您使用(System.Collections.IEnumerable)的意思.

尝试将名称空间更改为其他名称.