首页 > 后端开发 > C++ > C# 重写时如何防止中间类方法调用?

C# 重写时如何防止中间类方法调用?

Patricia Arquette
发布: 2024-12-26 20:51:10
原创
793 人浏览过

How to Prevent Intermediary Class Method Calls When Overriding in C#?

如何在调用基本方法时避免中间覆盖

在处理多个级别的类层次结构时,可能会遇到您想要的情况从重写方法调用基方法,但您不想调用中间类的实现。本文将探讨如何在 C# 中实现此目的。

在提供的代码片段中,您有一个带有虚拟方法 Say() 的基类。派生类重写此方法,而 SpecialDerived 进一步重写它​​。当为 SpecialDerived 的实例调用 sd.Say() 时,您会注意到不仅调用了您自己的实现,而且还调用了 Derived 的实现。

为了防止调用 Derived 的实现,您不能使用 base.base。说()。相反,您有两个选择:

选项 1:将常用实现移至受保护的虚拟方法

如果您有应由多个派生共享的常用实现类,将它们移动到基类中受保护的虚拟方法。这允许其他类仅重写它们需要的实现,从而避免调用中间类的实现。

例如,您可以引入受保护的虚拟方法 CustomSay(),而不是 Derived 重写 Say():

选项 2:直接函数指针调用(不安全Approach)

作为替代方案,您可以使用不安全代码块直接调用基类方法的函数指针。不推荐这种方法,因为它被认为是不安全的,并且可能导致潜在的错误。

以上是C# 重写时如何防止中间类方法调用?的详细内容。更多信息请关注PHP中文网其他相关文章!

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