'Series2' 不包含 'GetEnumerator' 的定义

'Series2' does not contain a definition for 'GetEnumerator'

我一定是遗漏了一些非常明显的东西。这段代码再简单不过了,我不明白为什么会出现这个错误。

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;
        }
    }
}

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

'Series2<char>' 不包含 'GetEnumerator()'...

的定义

我错过了什么?

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();

都可以。