私は「いいえ」と言うでしょうが、めちゃくちゃに使い始めないでください。実際にdynamic
は、私がベンチマークしたことから、(常にリフレクションを使用するのではなく) デリゲートを保持しているため、基本的なリフレクションよりも高速Invoke
です。具体的には、次の 2 つの強みがあります。
- ジェネリックメソッドの呼び出し(
MakeGenericMethod
などはとても苦痛です)
- オペレーターの呼び出し
ただし、インターフェイスなどで必要なことを行う方法があります。dynamic
非動的型では、実際にはダックタイピングになります。これは、非常に限られた一連のシナリオで役立ちます。主に: インターフェイスが優先されます。それらを除外しないでください。
の欠点dynamic
は、(非常識なコードを書かずに)有用であるためには、コンパイル時に名前を知る必要があることです。多くの場合、そうではありません。実行時に名前しかわからない場合は、高速な方法でデータにアクセスするための他のオプション ( Expression
、Delegate.CreateDelegate
「HyperDescriptor」など) があります。DynamicMethod