首页 > 后端开发 > C++ > 如何在 C# 中从派生类访问基类的虚拟方法实现?

如何在 C# 中从派生类访问基类的虚拟方法实现?

Barbara Streisand
发布: 2024-12-26 18:43:09
原创
945 人浏览过

How Can I Access a Base Class's Virtual Method Implementation from a Derived Class in C#?

重写虚拟方法:访问基础实现

在面向对象的环境中,当类重写虚拟方法时,它就成为公共的关于如何访问原始实现的问题。

考虑以下内容代码:

目标是从类 B 的范围内调用类 A 的 X 方法。但是,重写虚拟方法时的默认行为是替换派生类中的实现。

访问基本实现

在 C# 中,遗憾的是无法显式访问基本方法实现在被重写的方法之外。这是因为虚拟方法调度机制动态地将调用绑定到 B 中的重写实现。

替代方法

如果访问基本实现至关重要,则可能有值得考虑的设计缺陷。该功能可能不适合虚拟方法的目的,并且可能应该在非虚拟方法中实现。

或者,可以在重写的方法本身中调用基本实现:

但是,这个方法调用仅限于派生类重写的范围内

进一步探索

虽然 C# 没有提供访问基本实现的直接方法,但可以考虑使用其他方法,例如使用反射或 IL (中间语言)操纵来实现此行为。

以上是如何在 C# 中从派生类访问基类的虚拟方法实现?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板