Ody*_*dys 4 c# reflection .net-3.5
有没有办法通过提供方法本身来获取方法的名称(作为字符串)?
class Person
{
bool Eat(Food food){...}
}
Run Code Online (Sandbox Code Playgroud)
我想以某种方式得到字符串"吃".就这样!这可以来自实例,也可以来自使用反射的类声明.
我的尝试:
public delegate bool EatDelegate(Food f);
EatDelegate eatDel = new EatDelegate(_person1.Eat);
string methodName = eatDel.GetInvocationList()[0].Method.Name;
Run Code Online (Sandbox Code Playgroud)
这需要知道方法的委托,整个事情是不可读的
我想要methodName以便动态调用它.
笔记:
MethodBase.GetCurrentMethod()
)public string GetName(Expression<Action> exp)
{
var mce = exp.Body as MethodCallExpression;
return mce.Method.Name;
}
Run Code Online (Sandbox Code Playgroud)
-
一个方法
public int MyMethod(int i)
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
和用法
var s= GetName(()=>this.MyMethod(0));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
93 次 |
最近记录: |