【问题标题】:How to use .NET reflection to determine method return type (including void) and parameters?如何使用 .NET 反射来确定方法返回类型(包括 void)和参数?
【发布时间】:2010-08-11 09:22:47
【问题描述】:

如何知道参数的个数和类型?

如何知道返回类型?

如何判断返回类型是否为void?

【问题讨论】:

    标签: c# .net reflection void


    【解决方案1】:

    使用MethodInfo.ReturnType 确定返回类型,使用MethodBase.GetParameters() 查找参数。 (MethodInfo 派生自MethodBase,所以一旦你通过Type.GetMethod 等获得MethodInfo,你就可以同时使用ReturnTypeGetParameters()。)

    如果方法为void,则返回类型为typeof(void)

    if (method.ReturnType == typeof(void))
    

    【讨论】:

    • 如何检查空虚?以及如何在给定 MethodInfo 的情况下获取 MethodBase?谢谢!
    • @Louis:MethodInfo 派生自 MethodBase,您使用 typeof(void) 来检查是否为空。
    • 这样可以吗? if(method.ReturnType.Equals(typeof(void)))
    • 我没有意识到 System.Void 是一个实际类型 - 这是否意味着具有 void 返回类型的方法在 IL 中返回实际值?
    • @Chris:不——它是一种占位符类型,真的。对于 ReturnType 之类的东西,有一个精确地表示 void 的类型很有用。
    猜你喜欢
    • 2023-03-18
    • 2012-01-16
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-04
    相关资源
    最近更新 更多