我必须在这里遗漏一些非常明显的东西。这段代码不是更简单,我无法弄清楚为什么我会收到此错误。
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; ...
的定义我错过了什么?
答案 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();
一切都会奏效。