【发布时间】:2012-09-26 20:36:35
【问题描述】:
有没有办法通过提供方法本身来获取方法的名称(作为字符串)?
class Person
{
bool Eat(Food food){...}
}
我想以某种方式获得字符串“Eat”。就这样!这可以来自实例,也可以来自使用反射的类声明。
我的尝试:
public delegate bool EatDelegate(Food f);
EatDelegate eatDel = new EatDelegate(_person1.Eat);
string methodName = eatDel.GetInvocationList()[0].Method.Name;
这需要知道方法的委托,整个事情是不可读的
我想要 methodName 以便动态调用它。
注意事项:
- 我要调用的每个方法都有一个委托声明
- 我想避免指定方法的名称,以避免反射等后出现错误
- 当我想获得它的名字时,没有调用该方法。 (不能使用
MethodBase.GetCurrentMethod()) - 我必须使用 .Net 3.5
【问题讨论】:
-
可以用表达式解决问题...
标签: c# reflection .net-3.5