Qual è il significato di CTOR?


221

In molti file C # salvo i tag di regioni (?) Che sono chiamati CTOR o ctor. Qual è il significato di ctor? Perché una tale regione è chiamata ctor?

Risposte:


305

È solo una scorciatoia per "costruttore" - ed è anche quello che il costruttore viene chiamato in IL. Ad esempio, apri Reflector e osserva un tipo e vedrai i membri chiamati .ctorper i vari costruttori.


3
perché si chiama .ctor? Qual è il significato di (.) Punto davanti?
isuruceanu,

@isuruceanu: sospetto che mostri che è un nome riservato. Solo un'ipotesi però.
Jon Skeet,

Che dire di xxx. #. Ctor ()? , non riesce l'esecuzione della mia FxCop. stackoverflow.com/questions/17024149/…
Andreas Blomqvist

8
@Jessy: raramente l'ho sentito pronunciato, ma lo pronuncio "mirino".
Jon Skeet,

5
@isuruceanu Tutto inizia con "." nell'IL sono i metadati.
Jude,

45

Di solito questa regione dovrebbe contenere i costruttori della classe


2
"dovrebbe contenere" - significa che un .ctor non fa necessariamente riferimento a un costruttore? O semplicemente che non fa sempre riferimento al costruttore di una classe (perché potrebbe fare riferimento ad una struttura per esempio)?
cogumel0

@ cogumel0 O meglio "dovrebbe contenere s " ;-)
Sнаđошƒаӽ,

36

Per espandere un po 'di più, ci sono due tipi di costruttori: inizializzatori di istanza (.ctor), inizializzatori di tipo (.cctor). Compilare il codice seguente ed esplorare il codice IL in ildasm.exe. Noterai che il campo statico 'b' verrà inizializzato tramite .cctor () mentre il campo dell'istanza verrà inizializzato tramite .ctor ()

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

14

Digita "ctor" e premi due volte il tasto TAB per aggiungere automaticamente il costruttore predefinito


In VS2013 (e usando R # 2016.1) devo premere tab una volta sola. Non sono sicuro di altre versioni di VS / R #
ro͢binmckenzie

13
Questa non è una risposta alla domanda.
Malfist,

9
Non una risposta, quindi sottovalutata. Ma una cosa interessante da sapere, così non votata. :-)
Sнаđошƒаӽ
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.