- 106 名前:デフォルトの名無しさん mailto:sage [2012/09/10(月) 21:53:11.79 ]
- >>101
2,3の場合はボックス化されるよ 仰る通り、IEnumerable<T>.GetEnumeratorがボックス化されたList<T>.Enumeratorを返す。 1の場合、IEnumerable<T>.GetEnumeratorではなく構造体をそのまま返す方のGetEnumeratorが呼び出されるから ボックス化が起きない。 C#のforeachがインターフェイスによらずGetEnumeratorという名前のメソッドを呼ぶのは あくまでC#のコンパイル時に解決できる場合の話で、 JITによる実行時の特殊化は関係ない。
|

|