public class PatchInfo : IEnumerable<string>
{
...
public IEnumerator<string> GetEnumerator()
{
LinkedList<string> list = new LinkedList<string>();
...
return list;
}
}
接口的名称是“IEnumerable”所以我想可以更正返回类型“IEnumerator”。
但它会导致编译错误
CS0738:...没有实现接口成员......因为它确实如此 没有匹配的返回类型'System.Collections.IEnumerator'。
出了什么问题?
答案 0 :(得分:1)
IEnumarable&LT; T&GT;继承IEnumarable。所以你还需要实现IEnumerator IEnumerable.GetEnumerator()
方法。
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
此外,您的代码将无法编译,因为GetEnumerator
方法应返回IEnumerator
而不是
IEnumarable
。使用GetEnumarator方法获取IEnumerator
。
public class TestEnumarable : IEnumerable<string>
{
public IEnumerator<string> GetEnumerator()
{
LinkedList<string> a = new LinkedList<string>();
return a.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}