我有一个实现接口类 IPropertyListItemType 的 UserControl。我希望接口类要求它覆盖控件的 Enabled 属性。在我的接口类中,我有:
bool Enabled { get; set; }
在我的派生类(即 UserControl)中,我目前有:
bool IPropertyListItemType.Enabled
{
get { return _enabled; }
set
{
_enabled = value;
lblStatus.Text = _enabled ? "Enabled" : "Disabled";
//lblStatus.BackColor = _enabled ? SystemColors.Window : SystemColors.Control;
}
}
但是,当设置用户控件的Enabled属性时,不会执行UserControl的Enabled属性中的代码,而只执行UserControl的代码。我无法将 override 放置在接口类中(修饰符“override”对此项无效),或在派生类上(同样,修饰符“override”对此项无效)。
我如何要求在派生类上实现重写?
保持界面不变:
bool Enabled { get; set; }
在实现的标头中,使用
new
关键字隐藏基类方法,以便调用您的方法而不是默认方法。
new bool IPropertyListItemType.Enabled
{
get
{
...
}
set
{
...
}
}