ClassName.ctor>b__11 在 dotTrace Profiler 中代表什么?



在使用dotTrace分析器时,我接到了很多电话NamespaceName.ClassName.ctor>b__11(当我在我的应用程序上使用 Equatec 剖析器时,我得到了类似的结果,神秘函数被称为 NamespaceName.ClassName.<ctor>b__11 )。我首先假设它是ClassName的构造函数,但ClassName构造函数内部的断点只命中了一次。我假设这是自动生成的函数,如果是,我如何找到它的调用位置?如果构造函数只被调用一次,它与ClassName的构造函数有什么关系?

它可能是在构造函数中声明的 lambda。您是否使用 => 语法订阅了构造函数中的事件,或者其他将经常调用的事件?

使用 lambda 时,C# 编译器会将其转换为私有方法,并使用该方法的委托。(如果你正在做变量捕获,还有其他花哨的技巧。

查看 Reflector 中的其他类,看起来 C# 编译器在将它们转换为方法时只是对每个 lambda 进行编号,您注意到的命名约定<methodName>b__<number>,只是对每个类进行编号。

相关内容

  • 没有找到相关文章

最新更新