多くの人が私に理由を尋ねますが、私は彼らに対して良い答えを持っていません.
明らかに正当な理由があります。誰もそれを知っていますか?
ここで検索したところ、この質問が見つかりました。それがどのように機能するかを説明しますが、理由は説明しません。
多くの人が私に理由を尋ねますが、私は彼らに対して良い答えを持っていません.
明らかに正当な理由があります。誰もそれを知っていますか?
ここで検索したところ、この質問が見つかりました。それがどのように機能するかを説明しますが、理由は説明しません。
と同等のものが必要でしたIEnumerable<int>
が、C#1.0を使用していたとします。実装することもできIEnumerable
ますが、その場合は、反復ごとにボックス化とボックス化解除が必要になります。あなたの一種のダックタイピングバージョンを使用するとforeach
、ボクシングなしで逃げることができます。多くの場合、ボクシングは実際にはそれほど有害ではありませんが(パフォーマンスのヒットが誇張されていることに気付く傾向があります)、それでもエレガントではありません。
ジェネリックスがC#1.0にあったとしたら、に制限されていたのではないかと強く思います。foreach
IEnumerable<T>
ダック型の foreach と IEnumerable には、さらにいくつかの利点があります。
2 番目の利点は、実際にはダックタイピングによってのみ達成できます。