2012-10-27 2 views
3

수퍼 클래스의 메서드가 모든 하위 클래스 생성자에서 자동으로 호출되도록 C#에서 보장 할 수있는 방법이 있습니까? 특히생성자에서 자동으로 수퍼 클래스 메서드 호출

, 나는 단지 슈퍼 클래스에 코드를 추가하는 솔루션을 찾고 있어요 그렇게하지 "기본 (인수)"

+2

기본 클래스 생성자에서 가상 메서드를 호출하면 안됩니다 –

답변

5

는 기본 클래스의 생성자에서 전화를하는 것입니다 보장 할 수있는 유일한 방법 . 모든 하위 클래스는 기본 생성자를 호출해야하므로 관심 대상 메서드도 호출됩니다.

class BaseClass { 
    public void MethodOfInterest() { 
    } 
    // By declaring a constructor explicitly, the default "0 argument" 
    // constructor is not automatically created for this type. 
    public BaseClass(string p) { 
     MethodOfInterest(); 
    } 
} 

class DerivedClass : BaseClass { 
    // MethodOfInterest will be called as part 
    // of calling the DerivedClass constructor 
    public DerivedCLass(string p) : base(p) { 
    } 
} 
관련 문제