【发布时间】:2012-02-04 07:54:10
【问题描述】:
我正在尝试编写自己的(简单)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 试图告诉我的内容,并且我不知道如何解决它。
感谢您的宝贵时间
【问题讨论】:
-
请注意,您不应该这样编写枚举器,因为目前您可以在
foreach中修改内部数组(在 foreach 中调用Add不会导致异常)。 See -
@nawfal 好点,虫子一直在看着我们;)
标签: c#