我有一个带函数指针的函数
像
public void myfunc<a,b>(Func<a,b> functionpointer)
{
String functionname;
// Do some magic to get functionpointers name and set it to functionname
}
是否可以在不运行函数的情况下获取函数的名称?
我知道您可以获取当前正在运行的函数的函数名称,但是如何获取要调用的函数的名称?
请原谅我,如果以前发过这样的问题,我无法在C#找到解决方案
答案 0 :(得分:7)
string functionname = functionpointer.Method.Name;
答案 1 :(得分:0)
public void myfunc<a, b>(Expression<Func<a, b>> expr)
{
Func<a, b> functionpointer = expr.Compile();
String functionname = "";
var mce = expr.Body as MethodCallExpression;
if(mce!=null)
{
functionname = mce.Method.Name;
}
}
答案 2 :(得分:0)
使用反思
foreach (Type objType in assembly.GetTypes())
{
//List<string> listInner = new List<string>();
var listInner = new HashSet<string>();
listInner.Add(objType.FullName);
foreach (MemberInfo obMember in objType.GetMembers())
{
listInner.Add(obMember.MemberType + " " + obMember.ToString());
}
}