【问题标题】:What does ClassName.ctor>b__11 stand for in dotTrace Profiler?ClassName.ctor>b__11 在 dotTrace Profiler 中代表什么?
【发布时间】:2012-07-02 23:32:08
【问题描述】:

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

【问题讨论】:

    标签: c# profiler dottrace


    【解决方案1】:

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

    当您使用 lambda 时,C# 编译器会将其转换为私有方法,并使用该方法的委托。 (如果您要进行变量捕获,还有其他花哨的技巧。)

    看看 Reflector 中的其他类,看起来 C# 编译器在将每个 lambda 转换为方法时只是简单地编号,使用您注意到的命名约定 <methodName>b__<number>,只是按顺序编号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      • 2013-05-09
      • 1970-01-01
      • 1970-01-01
      • 2011-04-29
      • 2013-04-14
      • 2011-04-11
      相关资源
      最近更新 更多