在匿名方法中使用MethodInfo.GetCurrentMethod()publicstaticvoidMain(string[]args){Actiona=()=>Console.WriteLine(MethodInfo.GetCurrentMethod().名称);A();这段代码返回一个混淆后的字符串,如下所示:b__0。有没有办法忽略匿名方法并获得更具可读性的方法名称?你可以在外面捕捉它:varname=MethodInfo.GetCurrentMethod().Name+":subname";动作a=()=>Console.WriteLine(name);除此之外;没有什么。不,不。这就是为什么它是一个匿名方法。该名称由编译器自动生成,并保证是唯一的。如果想获取调用方法名,可以将其作为参数传递:publicstaticvoidMain(){Actiona=name=>Console.WriteLine(name);a(MethodInfo.GetCurrentMethod().Name);或者如果你真的想要一个有意义的名字,你需要提供它:publicstaticvoidMain(){Actiona=MeaningfullyNamedMethod;A();}staticvoidMeaningfullyNamedMethod(){Console.WriteLine(MethodInfo.GetCurrentMethod().Name);如果您想获取匿名方法所在函数的名称,您可以遍历堆栈并获取调用方法的名称。请注意,这仅在您想要的方法名称在层次结构中靠后一步时才有效。在达到非匿名方法之前,也许还有一段路要走。有关详细信息,请参阅:http://www.csharp-examples.net/reflection-calling-method-name/以上是C#学习教程:在匿名方法中使用MethodInfo.GetCurrentMethod()分享的内容,如果您是有兴趣的大家有用,需要多了解C#学习教程。希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
