';系列2';不包含';GetEnumerator';

本文关键字:GetEnumerator 包含 系列 | 更新日期: 2023-09-27 17:58:19

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

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

在指示的行,我得到了这个错误:

'系列2<char>'不包含"GetEnumerator()"的定义。。。

我错过了什么?

';系列2';不包含';GetEnumerator';

您显式实现了接口,因此只能通过接口实例(或强制转换)访问它们:

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

一切都会好起来的。