小ネタですが、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にはこれらは必要ありません。
コメントを投稿