• 本当は、田舎に庵を建てて隠遁生活したいけど、先立つものも無いので自宅で..。

yield returnで悩む

C#の戦闘能力を上げるため、昔購入したプログラム本を読み直しているけど、イテレータブロックがどうも理解できない。

コンソールに0~9まで表示するという、まあ、意味のないコードなんだけど、RangeクラスのGetEnumeratorメッソドの働きが全く理解できない。

まず、インターフェースが戻り値ってどういうこと? それから、foreachの中では、Rangeクラスのインスタンスを生成するだけで、GetEnumeratorを呼んでいないのに0~9の値が返ってきている。

更に、GetEnumeratorのメッソド名を変えると構文エラーになる。

まあ、foreachでこういう風に使える..と丸暗記すればいいんだけど、なんかしっくりこないよなぁ..。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA