我有这样的代码:
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();
}
}
当我运行它,并使用表查找绑定到对象内部member
参考我看到MemberInfo.Name
属性具有值<Main>b__0
。
这看起来很奇怪。 为什么不反思利用whatToDo
名字? 如果我有一个成员函数中相同的签名更是一个动作 - 我怎么会知道哪一个是报道?
为什么这样一个奇怪的名字被反射回来了?