C#のリストについて
C#のリストって、ジェネリックなものと非ジェネリックなものがあるけれど。 以前、ふと
「非ジェネリックなリストって何か長所あるんだろうか?」
と気になって色々計測した事がある。
結論はというと、速度面で言えば非ジェネリックなリストには互換性確保以上の存在価値はない、という事。ボックスとアンボックスを挟む事になるから当然といえば当然か。 ちなみに、Javaのジェネリックは糖衣構文と聞いているので、パフォーマンス上の差はなさそうな感じがするが、どうなんだろう? あまり進んで使いたい言語でもないが……。
一応非ジェネリックなリストはどんな型でも突っ込める、という点はあるけど、それは長所というよりも短所だと思う。 そんなわけのわからん事するんじゃねぇ。……と個人的には思っているけど。実際、ArrayListとかに色々な型の変数を全部ぶっ込むのが正解なケースって、あり得るんだろうか? 正直思いつかない。