[英]Override property in derived class
我之前曾问过类似的问题 ,但是这次有所扩展。 我已经问过的是在派生类中重写SomeProperty
,而答案使用的是“ new”运算符。
但是现在我又处于相同的情况下,
这次,我必须在派生类中设置
SomeProperty
同时在基类中执行默认行为。
我必须强迫从我的基类派生的用户在基类中执行一组代码,同时在派生类中设置SomeProperty
。 我已经尝试过使用模板模式,但是需要将其绑定到Windows Phone控件库中的自定义控件。 因此,我的基类不能是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 |
+------------------+
如果我正确理解了您的问题,则可以使用base
关键字来确保也执行原始方法。 例如,
public new void Method()
{
DoMyCustomStuff();
base.Method();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.