IEnumerable<T>は、ジェネリクス版のIEnumerable。
C#にジェネリクスが登場してからは<T>のないIEnumerableを使うことはあまりないだろう。
- 自分のメソッドである「戻り値がIEnumerator<T>のGetEnumerator()」
- 基底インターフェースとなるIEnumerableが持っている「戻り値がIEnumeratorのGetEnumerator()」
この2つを実装しないといけないのが問題。
引数同じ、戻り値違うとなると、オーバーロードじゃないし・・・。
非ジェネリクスのほうは、IEnumerable.GetEnumeratorとするとビルド通った。
ジェネリクスのほうは、yield使った。
Setでi番目にT型の値をセットするような仕組みに・・・。
10から14までセット。
value = 10 value = 11 value = 12 value = 13 value = 14 続行するには何かキーを押してください . . .
なんとか動いた。
Sample/dotnet/IEnumerable_T/IEnumerable_T/src/IEnumerable_T_ at master · bg1bgst333/Sample · GitHub