我有这个代码:
class Program
{
static void Main(string[] args)
{
Action whatToDo = () => {
var member = (MemberInfo)(MethodBase.GetCurrentMethod());
Thread.Sleep(0); //whatever, need something to put a breakpoint on
};
whatToDo();
}
}
当我运行它并使用 watch 查看绑定到member
引用的对象内部时,我看到该MemberInfo.Name
属性具有 value <Main>b__0
。
这看起来很奇怪。为什么反射不使用whatToDo
名称?如果我在一个成员函数中有多个具有相同签名的动作怎么办 - 我将如何判断报告了哪一个?
为什么反射会返回这么奇怪的名字?