询问 MethodInfo 是否接受参数的最有效方法是什么,如果接受,有多少?
我目前的解决方案是:methodInfo.GetParameters().Any()和methodInfo.GetParameters().Count().
这是最有效的方法吗?
由于我实际上不需要任何ParameterInfo对象,有没有办法在不调用的情况下做到这一点GetParameters()?
询问 MethodInfo 是否接受参数的最有效方法是什么,如果接受,有多少?
我目前的解决方案是:methodInfo.GetParameters().Any()和methodInfo.GetParameters().Count().
这是最有效的方法吗?
由于我实际上不需要任何ParameterInfo对象,有没有办法在不调用的情况下做到这一点GetParameters()?
您列出的两个用于 LINQ。Any()返回bool- 说明至少有一个。Count()用于任何IEnumerable<T>。
Length(属性)将是最快的,因为GetParameters()返回ParameterInfo[]。
似乎没有MethodInfo任何其他方法可以访问除 之外的参数数量GetParameters()。
如果效率很重要,为什么不将结果缓存在 a 中Dictionary<MethodInfo,int>?这样你只需要使用一次反射。
如果要获取 a 的参数计数MethodInfo,请使用以下代码
int intLength = mi.GetParameters().Length; // where mi is a variable of type MethodInfo