我正在尝试编写自己的(简单的)List 实现。这就是我到目前为止所做的:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace provaIEnum
{
class MyList<T> : IEnumerable<T>
{
private T[] _array;
public int Count { get; private set; }
public MyList() { /* ... */ }
public void Add(T element) { /* ... */ }
// ...
public IEnumerator<T> GetEnumerator()
{
for (int i = 0; i < Count; i++)
yield return _array[i];
}
}
不过,我收到有关 GetEnumerator 的错误:
“provaIEnum.Lista”未实现接口成员
'System.Collections.IEnumerable.GetEnumerator()'。
“provaIEnum.Lista.GetEnumerator()”无法实现
'System.Collections.IEnumerable.GetEnumerator()' 因为它不
具有匹配的返回类型“System.Collections.IEnumerator”。
我不确定我是否理解 VS 想要告诉我的内容,并且我不知道如何解决它。
谢谢你的时间
Since IEnumerable<T> http://msdn.microsoft.com/en-us/library/9eekhta0.aspx实施IEnumerable http://msdn.microsoft.com/en-us/library/system.collections.ienumerable.aspx您还需要在具有非通用版本的类中实现此接口获取枚举器 http://msdn.microsoft.com/en-us/library/system.collections.ienumerable.getenumerator.aspx方法。为了避免冲突,您可以明确地实现它:
IEnumerator IEnumerable.GetEnumerator()
{
// call the generic version of the method
return this.GetEnumerator();
}
public IEnumerator<T> GetEnumerator()
{
for (int i = 0; i < Count; i++)
yield return _array[i];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)