나는 UserControl
에서 상속 받고 많은 클래스를 파생시키는 데 사용되는 추상 기본 클래스를 사용합니다.파생 된 컨트롤 만들기
내가 가진 문제는 생성 된 함수 InitializeComponent()
이 클래스의 각 레이어에 대해 호출되도록 우아하게 보장하는 방법입니다.
그래서 (추상) 기본 클래스에는 모든 자식에 대해 공유되는 여러 컨트롤이 있습니다. 자식 클래스의 인스턴스를 만들 때 기본 생성자가 먼저 호출하지만 우아 내가 궁금하네요
public DerivedClass() {
InitializeComponent();
}
각 파생 클래스 효과적으로 같은 생성자를 구축 할 필요없이 파생 InitializeComponent()
를 호출 할 수있는 방법이 있습니다 각 파생 클래스에서 자신을 반복하는 것보다 효율적인 방법이 있다면? 이 (디버그) 기본 생성자에서 때
효과, 나는 그것이 파생 인스턴스의 것을 알고는 (추상) 기본 클래스는 결국
Derived.InitializeComponent();
라고 수 있도록하고 싶습니다. ..
조금 위험합니다 ... 기본 클래스 생성자는 가장 많이 파생 된 가상 구현을 호출합니다. 즉, 서브 클래스의 InitializeComponent 메소드는 서브 클래스의 생성자 자신보다 먼저 호출됩니다. 즉, 서브 클래스 생성자에 논리를 추가하는 모든 사용자를위한 시한 폭탄입니다. –