Qual é o significado do CTOR?


221

Em muitos arquivos C #, salvo as tags de regiões (?) Denominadas CTOR ou ctor. Qual é o significado de ctor? Por que essa região é chamada ctor?

Respostas:


305

É apenas uma abreviação de "construtor" - e é como o construtor também é chamado em IL. Por exemplo, abra o Reflector e observe um tipo e você verá membros chamados .ctorpelos vários construtores.


3
por que se chama .ctor? Qual é o significado de (.) Ponto na frente?
Isuruceanu 24/05

@isuruceanu: Eu suspeito que é para mostrar que é um nome reservado. Apenas um palpite.
Jon Skeet

E quanto a xxx. #. Ctor ()? , ele falha na minha execução do FxCop. stackoverflow.com/questions/17024149/…
Andreas Blomqvist

8
@ Jessica: Eu raramente ouvi isso pronunciado, mas eu o pronunciaria "see-tor".
precisa

5
@isuruceanu Tudo começa com "." na IL são metadados.
Jude

45

Geralmente essa região deve conter os construtores da classe


2
"deve conter" - isso significa que um .ctor nem sempre faz referência a um construtor? Ou apenas que nem sempre faz referência ao construtor de uma classe (porque poderia fazer referência a uma estrutura, por exemplo)?
cogumel0

@ cogumel0 Ou melhor, "deveria conter s " ;-)
Sнаđошƒаӽ

36

Para expandir um pouco mais, existem dois tipos de construtores: inicializadores de instância (.ctor), inicializadores de tipo (.cctor). Crie o código abaixo e explore o código IL em ildasm.exe. Você notará que o campo estático 'b' será inicializado por meio de .cctor () enquanto o campo de instância será inicializado por meio de .ctor ()

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

14

Digite "ctor" e pressione a tecla TAB duas vezes, isso adicionará o construtor padrão automaticamente


No VS2013 (e usando o R # 2016.1), só tenho que pressionar tab uma vez. Não tenho certeza sobre outras versões do VS / R #
ro͢binmckenzie

13
Esta não é uma resposta para a pergunta.
Malfist

9
Não é uma resposta, tão votada. Mas uma coisa interessante a saber, tão não votada. :-)
Enviado 26/10/16
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.