CTOR의 의미는 무엇입니까?


221

많은 C # 파일에서 CTOR 또는 ctor라는 지역 태그 (?)를 저장합니다. ctor의 의미는 무엇입니까? 왜 그런 지역이 ctor입니까?

답변:


305

"생성자"의 줄임말이며 IL에서도 생성자가 호출되는 것입니다. 예를 들어, Reflector를 열고 유형 .ctor을 보면 다양한 생성자를 호출 한 멤버가 표시 됩니다.


3
왜 .ctor라고 불리는가? 앞에 점 (.)의 의미는 무엇입니까?
isuruceanu

@ isuruceanu : 예약 된 이름임을 보여줄 것으로 생각됩니다. 그래도 추측.
Jon Skeet

xxx. #. ctor ()는 어떻습니까? FxCop 실행에 실패했습니다. stackoverflow.com/questions/17024149/…
Andreas Blomqvist 2016 년

8
@Jessy : 발음이 거의 들리지 않지만 "see-tor"라고 발음했습니다.
Jon Skeet

5
@isuruceanu 무엇이든 "."으로 시작 IL에는 메타 데이터가 있습니다.
Jude

45

일반적으로이 영역은 클래스의 생성자를 포함해야합니다.


2
"포함해야"-.ctor가 항상 생성자를 참조하는 것은 아닙니다. 아니면 클래스의 생성자를 항상 참조하지는 않습니다 (예를 들어 구조체를 참조 할 수 있기 때문에)?
cogumel0

@ cogumel0 또는 오히려 " s 를 포함해야한다 ";-)
Sнаđошƒаӽ

36

좀 더 확장하기 위해 인스턴스 이니셜 라이저 (.ctor)와 이니셜 라이저 (.cctor) 유형의 두 가지 생성자가 있습니다. 아래 코드를 작성하고 ildasm.exe에서 IL 코드를 탐색하십시오. 정적 필드 'b'는 .cctor ()를 통해 초기화되는 반면 인스턴스 필드는 .ctor ()를 통해 초기화됩니다.

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

14

"ctor"를 입력하고 Tab 키를 두 번 누르면 기본 생성자가 자동으로 추가됩니다.


VS2013 (및 R # 2016.1 사용)에서는 tab을 한 번만 누르면됩니다. 다른 버전의 VS / R #에 대해 잘 모르겠 음
ro͢binmckenzie

13
이것은 질문에 대한 답변이 아닙니다.
Malfist

9
답이 아니기 때문에 하향 조정되었습니다. 그러나 흥미로운 사실은 알려지지 않았습니다. :-)
Sнаđошƒаӽ
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.