我可以通过它的类型获取C#代理的签名吗? [英] Can I get the signature of a C# delegate by its type?
本文介绍了我可以通过它的类型获取C#代理的签名吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
对于一个例子,如果我声明一个代理,那么有一个直接的方法是使用反射来获取代理的参数列表键入如下
delegate double FooDelegate(string param,bool condition);
,然后按以下方式获取该委托类型的类型信息:
键入delegateType = typeof(FooDelegate);
是否可以检索返回类型(double)和参数列表({string,bool})
解决方案
MethodInfo method = delegateType.GetMethod(Invoke );
Console.WriteLine(method.ReturnType.Name +(ret));
foreach(method.GetParameters()中的ParameterInfo参数){
Console.WriteLine({0} {1},param.ParameterType.Name,param.Name);
}
Is there a straightforward way using reflection to get at the parameter list for a delegate if you have its type information?
For an example, if I declare a delegate type as follows
delegate double FooDelegate (string param, bool condition);
and later get the type information for that delegate type as follows
Type delegateType = typeof(FooDelegate);
Is it possible to retrieve the return type (double) and parameter list ({string, bool}) from that type info object?
解决方案
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);
}
这篇关于我可以通过它的类型获取C#代理的签名吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文