IEnumerable<T>

IEnumerable<T>は、ジェネリクス版のIEnumerable。
C#ジェネリクスが登場してからは<T>のないIEnumerableを使うことはあまりないだろう。

https://docs.microsoft.com/ja-jp/dotnet/api/system.collections.generic.ienumerable-1?view=netframework-4.8

  • 自分のメソッドである「戻り値が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