c# - 从基类更改属性 setter 行为

标签 c# .net inheritance properties base-class

我正在使用 Telerik RadScheduleView 并将 IAppointment 类实现到我定义的子“作业”类中。 “开始”和“结束”(DateTimes) 属性位于 IAppointment 类(我继承了该类)中。导航到“Public Virtual”方法(在 IAppointment 类中)向我显示 { get;放; } 但我无法将其更改为例如在将新值设置为 Start 或 End 时显示 MessageBox。它在选项卡中显示元数据,这只是我无法编辑的内容吗?有什么办法可以以某种方式覆盖此访问方法吗??

最佳答案

名称 IAppointment 向我表明它不是您要继承的类,而是您要实现的接口(interface) - 但是,我不熟悉 Telerik 产品,它们的命名约定可能只是很奇怪,所以,从表面上看你所说的,是的,你应该能够覆盖定义为虚拟的属性。

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

public class A
{
    public virtual int J { get; set; }
}

然后我们可以继承和覆盖 - 我们仍然可以访问基本实现,但如果需要,也可以“注入(inject)”我们自己的实现:

public class B : A
{
    public override int J
    {
        get
        {
            return base.J;
        }
        set
        {
            base.J = value;
        }
    }
}

但我终究无法想象为什么您想要从属性访问器的逻辑中显示一个消息框,并且不能强调您不应该这样做。

关于c# - 从基类更改属性 setter 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7992555/

相关文章:

javascript - 实例化对象中不存在作为属性的子类方法

c++ - 执行一个函数来影响不同的模板类实例

C# Invalidate 不调用 paint 方法

.net - 在 .net 中调整图像大小的库

c# - 如何使用 LINQ 添加两条记录?

c# - 导致来自非网络应用程序的 Google Analytics 日志(例如,通过 WebClient)

c# - .net套接字问题: client disconnect from server

inheritance - 在 F# 中调用基类显式接口(interface)方法

c# - 如何使用 LINQ to XML 连接具有相同名称值的所有子元素

c# - 如何从抽象类访问继承类的属性