'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();
都可以。
我一定是遗漏了一些非常明显的东西。这段代码再简单不过了,我不明白为什么会出现这个错误。
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();
都可以。