我有 3 个类继承了另一个名为 ParentClass
的类,这 3 个类中的每一个都包含以下代码
public void DrawBackground(Graphics e, Rectangle rect)
{
e.FillRectangle(Brushes.Red, rect);
}
在我的主窗体中,我有一个这样的变量 ParentClass PClass = new OneOfTheThreeClasses
如何从我的表单的绘制事件中调用那些使用该变量的类的 DrawBAckground
方法?
最佳答案
在 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
的实例上调用它。
关于c# - 调用方法并绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37144272/