¿Cuál es el significado de CTOR?

221

En muchos archivos C # guardo etiquetas de regiones (?) Que se denominan CTOR o ctor. ¿Cuál es el significado de ctor? ¿Por qué esa región se llama ctor?

johnnyRose
fuente

Respuestas:

305

Es solo una abreviatura de "constructor", y también es como se llama al constructor en IL. Por ejemplo, abra Reflector y mire un tipo y verá miembros llamados .ctorpor los diversos constructores.

Jon Skeet
fuente
3
¿Por qué se llama .ctor? ¿Cuál es el significado de (.) Punto delante?
isuruceanu
@isuruceanu: sospecho que es para mostrar que es un nombre reservado. Solo una suposición sin embargo.
Jon Skeet
¿Qué pasa con xxx. #. Ctor ()? , falla mi ejecución de FxCop. stackoverflow.com/questions/17024149/…
Andreas Blomqvist
8
@Jessy: Raramente lo escuché pronunciarse, pero lo pronunciaría "see-tor".
Jon Skeet
55
@isuruceanu Todo comienza con "." en la IL hay metadatos.
Jude
45

Por lo general, esta región debe contener los constructores de la clase.

Ghyath Serhal
fuente
2
"debe contener": ¿eso significa que un .ctor no siempre hace referencia necesariamente a un constructor? ¿O simplemente que no siempre hace referencia al constructor de una clase (porque podría hacer referencia a una estructura, por ejemplo)?
cogumel0
@ cogumel0 O más bien "debería contener s " ;-)
Sнаđошƒаӽ
36

Para ampliar un poco más, hay dos tipos de constructores: inicializadores de instancia (.ctor), inicializadores de tipo (.cctor). Cree el código a continuación y explore el código IL en ildasm.exe. Notará que el campo estático 'b' se inicializará a través de .cctor () mientras que el campo de instancia se inicializará a través de .ctor ()

internal sealed class CtorExplorer
{
   protected int a = 0;
   protected static int b = 0;
}
Antony Thomas
fuente
14

Escriba "ctor" y presione la tecla TAB dos veces, esto agregará el constructor predeterminado automáticamente

fiambres
fuente
En VS2013 (y usando R # 2016.1) solo tengo que presionar tab una vez. No estoy seguro acerca de otras versiones de VS / R #
ro͢binmckenzie
13
Esta no es una respuesta a la pregunta.
Malfist
99
No es una respuesta, tan rechazado. Pero es algo interesante de saber, tan sin voto. :-)
Sнаđошƒаӽ