CTOR'un anlamı nedir?


221

Birçok C # dosyasında CTOR veya ctor adlı bölge etiketlerini (?) Kaydediyorum. Ctor'un anlamı nedir? Neden böyle bir bölgeye ctor deniyor?

Yanıtlar:


305

Sadece "yapıcı" için kısayol - ve yapıcıya IL'de de denir. Örneğin, Reflektör'ü açın ve bir türe bakın .ctorve çeşitli kurucular için çağrıda bulunulan üyeleri göreceksiniz .


3
neden .ctor denir? Öndeki (.) Noktasının anlamı nedir?
isuruceanu

@isuruceanu: Bunun ayrılmış bir isim olduğunu göstermek için şüpheleniyorum. Sadece bir tahmin.
Jon Skeet

Xxx. #. Ctor () ne olacak? , benim FxCop yürütme başarısız. stackoverflow.com/questions/17024149/…
Andreas Blomqvist

8
@Jessy: Nadiren telaffuz edildiğini duydum, ama "see-tor" olarak telaffuz ediyorum.
Jon Skeet

5
@isuruceanu Her şey "." ile başlar. IL'de meta verilerdir.
Jude

45

Genellikle bu bölge sınıfın kurucularını içermelidir


2
"içermelidir" - bu, bir .ctor öğesinin mutlaka bir kurucuya başvurmadığı anlamına mı geliyor? Ya da sadece bir sınıfın yapıcısına her zaman başvurmadığını (örneğin bir yapıya başvurabileceğinden)?
cogumel0

@ cogumel0 Ya da daha çok " s içermelidir " ;-)
Sнаđошƒаӽ

36

Biraz daha genişletmek için iki tür kurucu vardır: örnek başlatıcılar (.ctor), tip başlatıcılar (.cctor). Aşağıdaki kodu oluşturun ve ildasm.exe dosyasındaki IL kodunu keşfedin. 'B' statik alanının .cctor () ile başlatılacağını, örnek alanının .ctor () ile başlatılacağını göreceksiniz.

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

14

"Ctor" yazın ve SEKME tuşuna iki kez basın, bu varsayılan kurucuyu otomatik olarak ekler


VS2013'te (ve R # 2016.1 kullanarak) sekmeye yalnızca bir kez basmam gerekiyor. VS / R #
ro͢binmckenzie

13
Bu sorunun cevabı değil.
Malfist

9
Bir cevap değil, bu yüzden indirildi. Ama bilinmesi ilginç bir şey, bu yüzden oylanmamış. :-)
Sнаđошƒаӽ
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.