2012-06-03 3 views
4

OK, 우리는 struct이 기본 매개 변수없는 생성자를 가질 수 없다고 들었습니다. (http://stackoverflow.com/questions/333829/why-cant-i-define-a-default struct-in-a-struct-in-net)을 사용합니다. 그러나 설명서에는 "각 값 유형에는 해당 유형의 기본값을 초기화하는 암시 적 기본 생성자가 있습니다." http://msdn.microsoft.com/en-us/library/s1ax56ch.aspx구조체 암시 적 디폴트 생성자와 무 매개 변수 생성자

암시 적 기본 생성자와 매개 변수없는 기본 생성자의 차이점은 무엇입니까?

답변

5

암시 적 기본 생성자 은 컴파일러에서 자동으로 생성하는 매개 변수없는 생성자입니다. 매개 변수없는 생성자를 만들 수없는 이유는 기본 생성자가 이미 존재하기 때문입니다. 나는 왜 그들이 이런 방식으로 그것을 선택했는지, 그리고 당신이 그것을 무시할 수없는 이유를 모른다.

+0

클래스와 동일하지만 무시할 수 있습니다. – Tarik

+0

실제로는 반만 질문에 대답합니다. –

1

IL을 사용하여 가리키는 대답에서 설명한 것처럼 struct에 대해 매개 변수없는 생성자를 정의 할 수 있지만 호출되지 않는 시나리오가 있습니다.

IMHO "암시 적"생성자는 단지 논리적 인 것입니다. 메모리가 할당 될 때 제로 아웃된다는 의미입니다.

+1

내 질문에 그 대답을 볼 수 있습니다. 나는 이미 그것을 실제로 연결했다 :) – Tarik

관련 문제