61

如果您有委托的类型信息,是否有一种直接的方法使用反射来获取委托的参数列表?

例如,如果我声明一个委托类型如下

delegate double FooDelegate (string param, bool condition);

然后获取该委托类型的类型信息,如下所示

Type delegateType = typeof(FooDelegate);

是否可以从该类型信息对象中检索返回类型 (double) 和参数列表 ({string, bool})?

4

1 回答 1

106
    MethodInfo method = delegateType.GetMethod("Invoke");
    Console.WriteLine(method.ReturnType.Name + " (ret)");
    foreach (ParameterInfo param in method.GetParameters()) { 
        Console.WriteLine("{0} {1}", param.ParameterType.Name, param.Name);
    }
于 2009-01-09T20:19:44.167 回答