Was bedeutet CTOR?


221

In vielen C # -Dateien speichere ich Regions-Tags (?) Mit dem Namen CTOR oder ctor. Was bedeutet ctor? Warum heißt eine solche Region ctor?

Antworten:


305

Es ist nur eine Abkürzung für "Konstruktor" - und so heißt der Konstruktor auch in IL. Öffnen Sie beispielsweise Reflector und sehen Sie sich einen Typ an. Daraufhin werden Mitglieder angezeigt, die .ctorfür die verschiedenen Konstruktoren aufgerufen werden .


3
warum heißt es .ctor? Was bedeutet (.) Punkt vorne?
Isuruceanu

@isuruceanu: Ich vermute, es soll zeigen, dass es ein reservierter Name ist. Nur eine Vermutung.
Jon Skeet

Was ist mit xxx. #. Ctor ()? , es schlägt meine FxCop-Ausführung fehl. stackoverflow.com/questions/17024149/…
Andreas Blomqvist

8
@ Jessy: Ich habe es selten ausgesprochen gehört, aber ich würde es "See-Tor" aussprechen.
Jon Skeet

5
@isuruceanu Alles beginnt mit "." in der IL sind Metadaten.
Judas

45

Normalerweise sollte diese Region die Konstruktoren der Klasse enthalten


2
"sollte enthalten" - bedeutet das, dass ein .ctor nicht unbedingt immer auf einen Konstruktor verweist? Oder nur, dass es nicht immer auf den Konstruktor einer Klasse verweist (weil es beispielsweise auf eine Struktur verweisen könnte)?
Cogumel0

@ cogumel0 Oder besser "sollte s enthalten " ;-)
Sнаđошƒаӽ

36

Um etwas mehr zu erweitern, gibt es zwei Arten von Konstruktoren: Instanzinitialisierer (.ctor), Typinitialisierer (.cctor). Erstellen Sie den folgenden Code und untersuchen Sie den IL-Code in ildasm.exe. Sie werden feststellen, dass das statische Feld 'b' über .cctor () initialisiert wird, während das Instanzfeld über .ctor () initialisiert wird.

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

14

Geben Sie "ctor" ein und drücken Sie zweimal die TAB- Taste. Dadurch wird der Standardkonstruktor automatisch hinzugefügt


In VS2013 (und mit R # 2016.1) muss ich nur einmal die Tabulatortaste drücken. Nicht sicher über andere Versionen von VS / R #
ro͢binmckenzie

13
Dies ist keine Antwort auf die Frage.
Malfist

9
Keine Antwort, so herabgestimmt. Aber eine interessante Sache zu wissen, so ungestimmt. :-)
Sнаđошƒаӽ
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.