C# 窗体继承 - 父窗体中的函数需要调用子窗体中的重写函数

标签 c# visual-studio-2012

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

我有两种形式 - 一种继承自另一种。我们称它们为 FormParent 和 FormChild。

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

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

有什么方法可以避免重写这两个函数,但调用的 DoSomethingUnique() 版本是来自 FormChild 的版本?

最佳答案

你想做的事一定会奏效。您只需要确保使用正确的修饰符即可。

在 FormParent..

virtual public void DoSomethingUnique()

在 FormChild 中

override public void DoSomethingUnique()

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

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

关于C# 窗体继承 - 父窗体中的函数需要调用子窗体中的重写函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19189260/

相关文章:

c# - 在不触发验证客户端的情况下检查验证组是否有效

c# - 析构函数执行顺序?

c# - EF Core 条件(添加)包含到 IQueryable

c++ - vector.push_back() 智能感知错误

c# - 在 C# 中创建 RGB 类 Color

c++ - 如何修复 "not recognized as an internal or external command"问题

asp.net - 如何在 Visual Studio 2012 中的自定义数据库中创建 sql 成员资格表

c# - OWIN 启动类丢失

c# - 如何在 Visual C# 中打开设计器 View ?

c# - 从具有指定格式的字符串中解析日期时间