9

MethodInfo がパラメーターを受け入れるかどうかを尋ねる最も効率的な方法は何ですか?また、受け入れる場合はいくつですか?

私の現在の解決策は次のとおりmethodInfo.GetParameters().Any()ですmethodInfo.GetParameters().Count()

これが最も効率的な方法ですか?

私は実際にはオブジェクトを必要としないのでParameterInfo、を呼び出さずにこれを行う方法はありますGetParameters()か?

4

3 に答える 3

14

リストした2つはLINQ用です。Any()戻り値bool-少なくとも1つあることを示します。Count()で使用されIEnumerable<T>ます。

Length(プロパティ)がGetParameters()返されるため、最速になりますParameterInfo[]

MethodInfo以外のパラメータの数にアクセスする他の方法があるようには見えませんGetParameters()

于 2011-02-09T19:29:08.083 に答える
5

効率が重要な場合は、結果を単にキャッシュしないのはなぜDictionary<MethodInfo,int>ですか? そうすれば、リフレクションを 1 回だけ使用するだけで済みます。

于 2011-02-09T20:10:41.997 に答える