C#表单继承 - 父表单中的函数需要在子表单中调用重写函数

时间:2013-10-04 19:27:30

标签: c# visual-studio-2012

好的 - 我遇到了一个问题,我很难解决问题。

我有两种形式 - 一种是从另一种继承。我们称之为FormParent和FormChild。

MyFunction()在FormParent中定义。我不需要覆盖它,因为它将为许多不同的形式执行相同的基本操作,但它调用DoSomethingUnique()。 DoSomethingUnique在父级中定义并在子级中重写。

我的问题是因为我没有覆盖MyFunction(),当我从FormChild调用它时,它调用的DoSomethingUnique()版本是FormParent的函数,而不是FormChild。

有没有办法避免覆盖这两个函数,但是有DoSomethingUnique()的版本被称为FormChild的版本?

1 个答案:

答案 0 :(得分:1)

你想做的事肯定会奏效。你只需要确保你有正确的修饰符。

在FormParent ..

virtual public void DoSomethingUnique()

在FormChild中

override public void DoSomethingUnique()

如果您没有使用override显式修改方法,那么您将在FormParent中调用该方法。

显然用你的返回类型替换void。