C#, C♯, C#相談室 Part75
■ このスレッドは過去ログ倉庫に格納されています
0106デフォルトの名無しさん
2012/09/10(月) 21:53:11.792,3の場合はボックス化されるよ
仰る通り、IEnumerable<T>.GetEnumeratorがボックス化されたList<T>.Enumeratorを返す。
1の場合、IEnumerable<T>.GetEnumeratorではなく構造体をそのまま返す方のGetEnumeratorが呼び出されるから
ボックス化が起きない。
C#のforeachがインターフェイスによらずGetEnumeratorという名前のメソッドを呼ぶのは
あくまでC#のコンパイル時に解決できる場合の話で、
JITによる実行時の特殊化は関係ない。
■ このスレッドは過去ログ倉庫に格納されています