전에 비슷한 Question을 요청했지만 이번에는 약간 확장되었습니다. 이미 물어 본 것은 SomeProperty
을 'new'연산자를 사용하여 파생 된 클래스에서 재정의하는 것입니다.파생 클래스의 재정의 속성
하지만 지금은 같은 시나리오에서 다시 생각하지만,
내가 파생 클래스에서
SomeProperty
을 설정하는 동안 기본 클래스 의 기본 동작을 실행해야 할이 시간.
나는 파생 클래스에서 SomeProperty
을 설정하는 동안 기본 클래스의 코드 세트를 실행하기 위해 내 기본 클래스에서 파생되는 사용자를 강제해야한다. Template Pattern을 사용하여 이미 시도했지만 Windows Phone Control Library의 Custom Control에 바인딩해야합니다. 그래서 내 기본 클래스는 abstract
클래스가 될 수 없습니다. 따라서 기본 클래스에 공통 기능을 지정하고 파생 클래스에서 변수를 설정하는 동안 기능이 적용되는지 확인할 수 없습니다.
파생 클래스에서 속성을 설정하는 동안이 코드 (또는 종류의 규칙)를 적용 할 수있는 다른 방법이 기본 클래스에서 실행됩니까?
편집 : 기본 클래스에서 파생되는 사람은 기본 클래스의 특정 동작을 호출 할 것으로 예상되지 않습니다. 나는 부름을 강요 할 필요가있다. 내가 제대로 질문을 이해 해요 경우
+---------------+
| UIElement |
|---------------| +----------------------+
| ... | | My Windows Application
| SomePropert{} | |----------------------|
| //Force to |<---+ |+--------------------+|
| //to xcute this code ||MyUserControl ||
+---------------+ | ||--------------------||
+--------------+-----+ || ||
|FrameWorkElement | |+--------------------+|
|--------------------| |//Want to use |
| ... |<-+ |// SomeProperty; |
+--------------------+ | | |
+-----------+-+ | |
|Control | | |
|-------------| +----------------------+
| ... |<---+
+-------------+ |
+-----------+---+
| UserControl |
|---------------|<---+
| ... | |
+---------------+ |
+----------+-------+
| MyUserControl |
|------------------|
| SomeProperty{} |
| //Want to override
| //Setting this here|
|//should make sure|
|//base class code |
|//gets executed |
+------------------+
속성에서 가능한 한 동일한 방법으로 'new'를 사용할 수 있습니다. 약간의 반사를 사용하여 기본 클래스 내부에 도달하고 멤버를 찌를 수도 있습니다. 리플렉션 및 캐싱 대리인을 사용하는 것이 좋습니다. – IAbstract