私は自分の(単純な)リストの実装を書こうとしています。これは私がこれまでにやったことです: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を実装していません。 () '。 'System.Collections.IEnumerator'の一致する戻り値の型が ではないため、 'provaIEnum.Lista.GetEnumerator()'には 'System.Collections.IEnumerable.GetEnumerator()'が実装できません。
VSが私に教えようとしていることを理解していて、それを修正する方法がわかりません。お時間を
おかげで
現在、内部配列を 'foreach'で変更することができるので、列挙子を書くべきではないことに注意してください(foreachでは例外を発生させないで' Add'を呼び出してください)。 [参照](参照:http://stackoverflow.com/questions/24142614/when-should-i-separately-implement-ienumeratort) – nawfal
@nawfal良い点、バグは常に私たちを見ている;) – BlackBear