C# foreachの実装(イテレーター)

C#の構文で foreach は、非常に便利な機能です。

foreach機能を作成するには、IEnumerableやIEnumeratorインターフェースを実装する必要があり、結構面倒です。

そこでC# 2.0ではイテレーター構文というものが追加されています。

ブロック中にyield returnもしくはyield breakを書くことで、通常のメソッドやプロパティとは違った動作になります。

イテレーター基本的動作の確認

上記をデバッガーでトレースしてみれば分かると思いますが、yieldにより特別な動きを実現しています。

 

foreachの機能実装(イテレーター)

Enumerable、とGetEnumerator()は同じことができます。通常GetEnumerator()でしょう。

 

コメントを残す