【问题标题】:What is the meaning of CTOR?CTOR的含义是什么?
【发布时间】:2011-01-06 10:50:09
【问题描述】:

在很多 C# 文件中,我看到名为 CTOR 或 ctor 的区域标签(?)。 ctor是什么意思?为什么这样的区域叫ctor?

【问题讨论】:

    标签: c#


    【解决方案1】:

    它只是“构造函数”的简写——它也是 IL 中构造函数的名称。例如,打开 Reflector 并查看一个类型,您会看到名为 .ctor 的成员用于各种构造函数。

    【讨论】:

    • 为什么叫.ctor?前面的(.)点是什么意思?
    • @isuruceanu:我怀疑这是为了表明它是一个保留名称。不过只是猜测。
    • 怎么说? ctor 和 Skeet-er 押韵吗?你做的缩写吗?还是“刀”?
    • @Jessy:我很少听到它发音,但我会发音为“see-tor”。
    • @isuruceanu 任何以“。”开头的东西。在 IL 中是元数据。
    【解决方案2】:

    通常这个区域应该包含类的构造函数

    【讨论】:

    • “应该包含”——这是否意味着 .ctor 不一定总是引用构造函数?或者只是它并不总是引用一个类的构造函数(因为它可以引用一个结构体)?
    【解决方案3】:

    进一步扩展,有两种构造函数:实例初始化器(.ctor),类型初始化器(.cctor)。构建下面的代码,并探索 ildasm.exe 中的 IL 代码。您会注意到静态字段“b”将通过 .cctor() 进行初始化,而实例字段将通过 .ctor() 进行初始化

    internal sealed class CtorExplorer
    {
       protected int a = 0;
       protected static int b = 0;
    }
    

    【讨论】:

      【解决方案4】:

      键入“ctor”并按TAB键两次,这将自动添加默认构造函数

      【讨论】:

      • 在 VS2013 中(并使用 R# 2016.1)我只需要按一次 Tab。不确定其他版本的 VS/R#
      • 这不是问题的答案。
      • 不是答案,所以被否决了。但是要知道一件有趣的事情,所以没有被否决。 :-)
      猜你喜欢
      • 2013-08-11
      • 2019-04-24
      • 2019-07-19
      • 2011-03-30
      • 2014-10-13
      • 2017-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多