【问题标题】:Why does .ctor call itself?为什么 .ctor 会调用自己?
【发布时间】:2019-06-17 21:00:19
【问题描述】:

为什么 ctor 会调用自己,这不应该让它循环吗?我不太明白发生了什么。

我在网上找了一圈,还是找不到答案。

  .method family hidebysig specialname rtspecialname instance void .ctor()
  {
    .maxstack 8
    ldarg.0
    ldstr    asc_203C                   // ""
    stfld    string KGER.BaseConfiguration::_get
    ldarg.0
    **call     instance void [mscorlib]System.Object::.ctor()**
    nop
    ret
  }

【问题讨论】:

  • 它调用的是父构造函数 (System.Object) 而不是你所在的构造函数(不管是什么)。

标签: .net-assembly cil


【解决方案1】:

您的构造函数正在链接(调用)基类的构造函数(即System.Object)。

即使您不在琐碎的情况下(例如空构造函数)调用它,编译器也会发出调用,因为对象的每个“部分”都必须正确构造。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-24
    • 1970-01-01
    • 2018-11-06
    • 2021-03-30
    • 2020-10-20
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多