我正在尝试编写我自己的(简单)List实现。这是我做过什么至今:实施IEnumerable的麻烦<T>
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试图告诉我什么,我不知道如何解决它。
感谢您的时间
请注意,你不应该这样写你的枚举器,因为目前你可以在'foreach'中调用你的内部数组(在foreach中调用'Add'不会导致异常)。 [see](http://stackoverflow.com/questions/24142614/when-should-i-separately-implement-ienumeratort) – nawfal 2014-07-08 16:59:28
@nawfal好点,错误总是看着我们;) – BlackBear 2014-07-08 17:46:19