간단한 구문을 사용하여 파생 클래스 필드에 값을 직접 할당하여 초기화하면 컴파일러는 파생 클래스 필드를 초기화 한 다음 base .ctor를 호출하는 IL 코드를 내 보냅니다. 왜 그것은 기본 .ctor 필드를 호출하지 않고 파생 클래스 필드를 초기화합니다. 기본 클래스의 필드에 의존하는 필드가 있으면 어떻게됩니까?기본 클래스 생성자가 먼저 호출되지 않는 이유
여기에 몇 가지 코드 샘플을 넣고 싶지만 휴대 전화에서이 질문을 게시하고 있습니다.
필드는 기본 클래스 필드에 의존 할 수 없으며 필드 자체가 이니셜 라이저에서 'this'를 참조 할 수 없기 때문에 필드도 자체 필드입니다. –
@Anthony, 네,하지만 그것은 OP의 질문의 일부라고 생각합니다. 왜 우리는 고문을 당했고 필드 이니셜 라이저에'this '를 사용할 수 없습니까? (달리, 말하자면, 자바) 나는 두 경우 모두 안전한 코드의 더 강력한 보증을 제공한다고 가정한다. 하지만 때로는 슬픈 일이 있습니다. –
실은 잘 잡습니다. – Tarik