2012-06-18 6 views
6

파생 클래스의 기본 생성자가 실행되지 않는 문제가 있습니다. 이 작업을 백 번 반복했기 때문에 기본 생성자가 실행되지 않는 이유를 알지 못합니다. 나는 누군가가 내가 누락 된 단순한 것을 발견 할 수 있기를 바라고있다. 코드 예는 다음과 같습니다. 누구든지 내 기본 생성자가 먼저 호출되지 않는 이유를 알고 있습니까? 같은 방식으로 구현되는 다른 클래스가 있고 기본 생성자가 항상 먼저 호출됩니다. 두 번째 생성자가 호출 될 때 같은 클래스의 기본 생성자가 아닌 기본 클래스를 호출하려고 한 것 같은데기본 생성자가 호출되지 않습니다.

if (item.GetType() == typeof(OtherChargeItem)) 
{ 
    OtherChargeItemAddUpdateTest test = new OtherChargeItemAddUpdateTest((OtherChargeItem)item); 
    test.StartPosition = FormStartPosition.CenterParent; 
    test.ShowDialog(); 
} 

public OtherChargeItemAddUpdateTest() 
{ 
    InitializeComponent(); 
} 

public OtherChargeItemAddUpdateTest(OtherChargeItem item) 
     : base() 
{ 
    currentItem = item; 
} 
+3

여기에 상속 계층 구조를 표시 할 수 있습니까? – JaredPar

답변

22

는, 그래서 InitializeComponent 불려갑니다. base() 대신 this()을 시도하십시오.

+3

+1 예, 좋은 공제 기술. 그는 아마도 기본 생성자가 "기본 생성자"라고 생각합니다. –

+4

고마워, 나는 지금 당장 바보 같은 느낌을 표현할 준비가되었다. JaredPar가 상속 계층 구조를 요청하자마자, 나는 지난 30 분 동안 문제에 대한 나의 설명과 내가 시도한 바를 깨달았다. 도움을 주셔서 감사합니다. 그리고 사려 깊어서 오늘 아침에 어떤 이유로 든 제 뇌를 위해 그렇게 사소하지 않은 사소한 질문으로 모든 사람의 시간을 낭비하게되었습니다. – Grasshopper

+0

이와 비슷한 프로토콜은 무엇입니까? 내 질문에 무엇이 있어야했는지를 더 잘 반영하도록 질문을 수정해야합니까? – Grasshopper

관련 문제