'系列2'不包含' GetEnumerator'的定义

时间:2016-07-24 05:39:07

标签: c# interface ienumerable

我必须在这里遗漏一些非常明显的东西。这段代码不是更简单,我无法弄清楚为什么我会收到此错误。

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

namespace Kent
{
    public class Series2<T> : IEnumerable<T>
    {
        static void Test()
        {
            Series2<char> s2 = new Series2<char>();
            s2.GetEnumerator();                       //*** compile error here
        }

        IEnumerator IEnumerable.GetEnumerator()
        {
            return null;
        }

        IEnumerator<T> IEnumerable<T>.GetEnumerator()
        {
            return null;
        }
    }
}

在指示的行中,我收到此错误:

&#39;&系列2 LT;炭&GT;&#39;不包含&#39; GetEnumerator()&#39; ...

的定义

我错过了什么?

1 个答案:

答案 0 :(得分:2)

explicitly implemented the interfaces因此只能通过界面实例(或演员)访问它们:

        IEnumerable<char> s2 = new Series2<char>();
        s2.GetEnumerator();

        IEnumerable s2 = new Series2<char>();
        s2.GetEnumerator();

        Series2<char> s2 = new Series2<char>();
        ((IEnumerable<char>)s2).GetEnumerator();

一切都会奏效。