通常は静的にチェックされた割り当てがあるようです。私はこの場合の利点を確信していません。私は何が欠けていますか?foreachを可変型にキャストすることの背後にある考え方は何ですか?
3
A
答えて
3
foreach
は、ジェネリックスの前に設計されていますが、これは.NET 2.0まで存在しませんでした。 .NET 1.1では、コレクションクラスを使用した場合、IEnumerator
インターフェイスのCurrent
プロパティは常にSystem.Object
を返します。
foreach(string item in collection)
を代わりに明示的に記述することで:キャストを行う、あなたが書くことができますforeachを有することにより
確かforeach(object temp in collection)
{
string item = (string)temp;
は、.NET 2で、これはもう本当に問題ではありません。
1
foreach
の履歴は、一般的なIEnumerable
より前です。したがって、ArrayList
などのコレクションを列挙することが容易になりました。 .NETには一般的なコレクションがあり、ArrayList
はまれにしか使用されていません。フリーキャスティングは、フィーチャが今追加された場合に設計された方法とのインピーダンスの不一致のようです。
しかし、この機能が追加されたので、人々はジェネリックコレクションでもそれを使用して、自分が望むタイプにキャストして、数行のコードを避けることができます。これは、それがArrayList
日にどのように使用されたかからあまり離れていません。
関連する問題
- 1. プログラミングの「コンテキスト」という概念の背後にある一般的な考え方は何ですか?
- 2. Twitter Bootstrapのドロップダウンメニューの実装の背後にある考え方は何ですか?
- 3. DOM(Document Object Model)の概念の背後にある真の考え方は何ですか?
- 4. このコードの背後にあるトリックは何ですか?
- 5. このプログラムの背後にある論理は何ですか?
- 6. カラーホイールの背後にあるアルゴリズムとは何ですか?
- 7. datagridtemplatecolumnの背後にあるコードとその使い方は何ですか?
- 8. ドラッグ可能なオブジェクトの背後にある技術は何ですか?
- 9. linuxのfactorコマンドの背後にあるアルゴリズムは何ですか?
- 10. Javaのオブジェクトクラスの背後にあるメカニズムは何ですか?
- 11. t( 'flash.notice.order.creditcard.valid')の背後にあるロジックは何ですか?
- 12. ビューヘルパーの背後にあるメカニズムは何ですか?
- 13. AdventureWorksインストーラの背後にある技術は何ですか?
- 14. カラーホイールの背後にある数学は何ですか?
- 15. CSSフィルターの背後にある数学は何ですか?
- 16. ST_LineMerge()の背後にあるアルゴリズムは何ですか?
- 17. ヘッダーの背後にある根拠は何ですか?
- 18. Lightstreamerの背後にある魔法は何ですか?
- 19. 'BanTransitiveDependencies failed'の背後にある理由は何ですか?
- 20. HTTP Dateヘッダーの背後にある根拠は何ですか?
- 21. Dropboxの背後にあるロジックは何ですか?
- 22. オブジェクトをSystem.Windows.DataObject.DataStore.DataStoreEntryにキャストすることは可能ですか?
- 23. FxCop.SDK.TypeNodeをSystem.Typeにキャストすることは可能ですか
- 24. 高速列挙型でキャストすることは可能ですか?
- 25. Facebookのステータス更新メカニズムの背後にあるデザインとアーキテクチャは何ですか?
- 26. "パーティーモデル"の背後にある原理とそのメリットは何ですか?
- 27. 型キャストのポイントは何ですか?このコードのスニペットで
- 28. NATの背後にあるワーカーで機能するビルドサーバは何ですか?
- 29. nginxプロキシの背後にある特定のサブドメインにWebソケットを許可する方法はありますか?
- 30. 兄弟セレクタ* + *と*〜*の背後にあるロジックは何ですか?この質問のために
もっと明示できますか? – Adi
@Adi:Foreachは非ジェネリックな 'IEnumerable'で動作し、暗黙の変換を追加します。私はこれがDejasがここに言及しているものだと信じています... –
Meh ... 'var'を使う - 問題は蒸発する(正しい/ no-opの割り当て以外は何もできない) –