CTOR是什么意思?


221

在许多C#文件中,我保存了名为CTOR或ctor的区域标签(?)。ctor是什么意思?为什么将这样的区域称为ctor?

Answers:


305

这只是“构造函数”的简写-这也是IL中所谓的构造函数。例如,打开Reflector并查看一个类型,您将看到.ctor为各种构造函数调用的成员。


3
为什么叫.ctor?前面的(。)点是什么意思?
isuruceanu

@isuruceanu:我怀疑这表明它是保留名称。只是一个猜测而已。
乔恩·斯基特

xxx。#。ctor()呢?,它使我的FxCop执行失败。stackoverflow.com/questions/17024149/...
安德烈亚斯·布罗姆奎斯特

8
@杰西:我很少听到它的发音,但是我会说它是“ see-tor”。
乔恩·斯基特

5
@isuruceanu任何以“。”开头的内容。IL中的元数据。
裘德


36

为了进一步扩展,有两种构造函数:实例初始值设定项(.ctor),类型初始值设定项(.cctor)。构建以下代码,并在ildasm.exe中浏览IL代码。您会注意到,静态字段'b'将通过.cctor()初始化,而实例字段将通过.ctor()初始化

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

14

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


在VS2013中(使用R#2016.1),我只需要按一下Tab键即可。不知道VS的其他版本/ R#
ro͢binmckenzie

13
这不是问题的答案。
Malfist

9
没有答案,所以不满意。但是要知道的一件有趣的事,因此毫无争议。:-)
Sнаđошƒаӽ
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.