询问 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