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

发布于 2024-10-16 23:28:37 字数 279 浏览 2 评论 0原文

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

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

这是最有效的方法吗?

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

What is the most efficient way to ask a MethodInfo if it accepts parameters and, if so, how many?

My current solutions would be: methodInfo.GetParameters().Any() and methodInfo.GetParameters().Count().

Is this the most efficient way?

Since I don't actually need any of the ParameterInfo objects, is there a way to do this without a call to GetParameters()?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

年少掌心 2024-10-23 23:28:37

您列出的两个用于 LINQ。 Any() 返回 bool - 表明至少有一个。 Count() 可在 IEnumerable 上任意使用。

Length(属性)将是最快的,因为 GetParameters() 返回 ParameterInfo[]

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

The two you listed are for LINQ. Any() returns bool - stating that there is at least one. Count() is used any on IEnumerable<T>.

Length (the property) will be the fastest because GetParameters() returns ParameterInfo[].

It does not appear that MethodInfo have any other way to access the number of parameters other than GetParameters().

小傻瓜 2024-10-23 23:28:37

如果效率很重要,为什么不将结果缓存在 Dictionary 中?这样你只需要使用反射一次。

If efficiency matters why don't you just cache the result in a Dictionary<MethodInfo,int>? That way you only need to use reflection only once.

独自唱情﹋歌 2024-10-23 23:28:37

如果您想获取 MethodInfo 的参数数量,请使用以下代码

int intLength = mi.GetParameters().Length; // where mi is a variable of type MethodInfo

If you want to get the count of parameters of a MethodInfo, then use the below code

int intLength = mi.GetParameters().Length; // where mi is a variable of type MethodInfo
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文