如何将虚拟财产添加到密封类

Ami*_*mir 3 c# virtual inheritance properties sealed

我用 c# 编写了一个继承 TextBox 的类,现在我想为其添加一个虚拟属性:

    public virtual Color WatermarkColor
    {
        private get { return _watermarkColor; }
        set
        {
            _watermarkColor = value;
            OnEnter(null);
            OnLeave(null);
        }
    }
Run Code Online (Sandbox Code Playgroud)

但发生了这个错误:

错误 1 ​​'xXx.TextBoxPlus.WaterMark.get' 是密封类 'xXx.TextBoxPlus' 中的新虚拟成员

Glo*_*del 7

您已将其声明TextBoxPlus为一个sealed类,因此不能对其进行子类化。因此,virtual说明符是不必要的,因为它永远不会被覆盖。

只要删除virtual,你应该没问题。sealed(或者如果您打算稍后对其进行子类化,则从类定义中删除。)