询问MethodInfo需要多少参数的最有效方法是什么?

sma*_*man 7 c# reflection performance methodinfo

如果MethodInfo接受参数,那么询问MethodInfo的最有效方法是什么?如果接受,有多少?

我目前的解决方案是:methodInfo.GetParameters().Any()methodInfo.GetParameters().Count().

这是最有效的方式吗?

由于我实际上并不需要任何ParameterInfo对象,有没有办法在没有调用的情况下执行此操作GetParameters()

Dan*_*ite 11

您列出的两个是LINQ.Any()返回bool- 说明至少有一个.Count()任何使用IEnumerable<T>.

Length(财产)将是最快的,因为GetParameters()返回ParameterInfo[].

似乎没有MethodInfo任何其他方式来访问除了以外的参数数量GetParameters().


Cod*_*aos 5

如果效率很重要,为什么不将结果缓存到Dictionary<MethodInfo,int>?这样你只需要使用一次反射.