小ネタですが、IEnumeratable(T)の実装についてです。
とりあえず、ソースコードです。
using System.Collections.Generic;
using System.Collections;
class MyClass<T> : IEnumerable<T>
{
    public int Count { get { return ...; } } //データの数
    public T this[int index]
    {
        get { return ...; } //indexを使ってデータを返す
    }
    public IEnumerator<T> GetEnumerator()
    {
        for (int i = 0; i < Count; i++)
        {
            yield return this[i];
        }
    }
    IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); }
}
IEnumeratorがジェネリックにも存在するので、変な記述に見えるのかもしれません。
混乱をさせるためにはusingを使わずにIEnumeratorを書けばよいかもしれません。
 
 
 





1 件のコメント:
そういえば、Countとthis[]をpublicで見せてますが、IEnumerableにはこれらは必要ありません。
コメントを投稿