调用方法并绘制

时间:2016-05-10 16:34:54

标签: c# winforms

我有3个类继承了另一个名为ParentClass的类,其中每个类都有以下代码

public void DrawBackground(Graphics e, Rectangle rect)
{
    e.FillRectangle(Brushes.Red, rect);
}

在我的主要表单中,我有一个像ParentClass PClass = new OneOfTheThreeClasses

这样的变量

如何从我的表单绘制事件中使用该变量调用这些类的DrawBAckground方法?

1 个答案:

答案 0 :(得分:4)

ParentClass上创建抽象或虚拟方法。像这样:

public virtual void DrawBackground(Graphics e, Rectangle rect)
{
    // do nothing
}

然后在子类中重写该方法:

public override void DrawBackground(Graphics e, Rectangle rect)
{
    e.FillRectangle(Brushes.Red, rect);
}

这个想法是ParentClass需要定义可以对其执行的操作或其任何多态版本(例如子类型)。它不一定必须提供实现(并且定义可以是抽象的或虚拟的,取决于ParentClass本身的实现和使用方式),但确实需要以某种方式“知道”该方法以便任何能够在ParentClass的实例上调用它的东西。