質問: dynamicキーワードは動的言語でのみ使用されることを意図していますか? dynamicキーワードは動的言語でのみ使用されることを意図していますか? 私は最近code camp 12に参加しましたが、c#4.0の新しい「+ dynamic +」キーワードは動的言語との相互運用にのみ使用されるべきであると話しました。 彼はまた、通常の反射(それ自体はやや遅い)に比べて、やや遅いと言っています。 しかしそれから私はスコットhanselmanが動的キーワードが「反射をより痛みを少なくする」と述べているのを聞いた。 それでは、動的コードから来ていないオブジェクトを反映する目的でdynamicキーワードを使用することは受け入れられるでしょうか?
回答: アヒルの型付けが必要で、コンパイル時の型の安全性があまり必要ないと思われる場合は、先に進んでdynamicを使用してください。 私はそれがc#のみのコードでポップアップするための多くの新しい使用法があると確信しています(expandoobjectを使用してxmlのような動的なデータソースを問い合わせるなど)。 私は、多くの新しい用法が不必要になることを確信しています。ジェネリックの多くの使用は、多態性を表現するためのもっと複雑な方法です。 パフォーマンスに関しては、.net 4のdlrは動的型付けを「高速」にしようとしています。 いつものように、それが十分速い場合は、アプリケーションのプロファイリングを開始するときに理解できるものです。