C# - 实现虚拟void 2级别?

时间:2011-07-31 04:13:46

标签: c#

考虑这个例子。

我们有一个名为Control的类。然后我们有一个继承该类的类,名为CollectionControl。最后,除此之外,我们还有一个名为ListBox的类,它继承了CollectionControl。

现在,让我们说Control有一个名为“OnSizeChanged”的方法,它的定义方式如下:

    internal protected virtual void OnSizeChanged(Vector size)
    {
    }

如何从ListBox重写此方法?

如果我不能,最好的解决办法是什么?

2 个答案:

答案 0 :(得分:2)

像往常一样使用override关键字。一次删除的继承关系不需要特殊的咒语。

答案 1 :(得分:1)

如您所知,“内部受保护”意味着它对于派生类或程序集中的另一个类是可见的。

因此,如果您想在派生类中覆盖它,您可以执行以下操作:

protected override void OnSizeChanged(Vector size)

这是一个很好的链接:

http://www.csharp-station.com/Tutorials/lesson19.aspx