从基类改变propeprty setter行为

1 .net c# inheritance properties base-class

我正在使用Telerik RadScheduleView并将IAppointment类实现到我定义的子'Job'类中.'开始'和'结束'(DateTimes)属性可以在IAppointment类中找到(我继承了它).导航到'公共虚拟'方法(在IAppointment类中)向我展示了{get; 组; 但是我无法改变它,例如,在设置一个新值到开始或结束时显示一个MessageBox.它在选项卡中说MetaData,这只是我无法编辑的内容吗?有没有办法我可以以某种方式覆盖此访问方法?

Gra*_*mas 5

该名称IAppointment将向我表明它不是您继承的类,而是您正在实现的接口 - 但是,我不熟悉Telerik产品,他们的命名约定可能只是奇怪,所以,接受你所说的面值,是的,您应该能够覆盖定义为虚拟的属性.

例如,如果我们在某处定义了以下类,但是可以访问,以便我们可以继承,并公开一个virtual成员:

public class A
{
    public virtual int J { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后我们可以继承override- 我们仍然可以访问基本实现,但如果需要,还可以"注入"我们自己的:

public class B : A
{
    public override int J
    {
        get
        {
            return base.J;
        }
        set
        {
            base.J = value;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但我不能为我的生活想象为什么你想要从属性访问者的逻辑中显示一个消息框,并且不能强调你不应该.