有什么方法可以调用覆盖方法的父版本?(C#.NET)

有什么方法可以调用覆盖方法的父版本?(C#.NET),第1张

有什么方法可以调用覆盖方法的父版本?(C#.NET)

在IL级别,您可以发出a

call
而不是a
callvirt
来完成工作-但是,如果我们将自己限制为C#;-p( 编辑
darn!运行时将停止您
VerificationException
::“ *** 作可能会使运行时不稳定。”;删除的
virtual
,它工作正常;太聪明了一半…)

ChildClass
类型内部,您可以使用
base.methodTwo()
-但是,这在外部是不可能的。您也不能下降超过一个级别-
没有
base.base.Foo()
支持。

但是,如果使用方法隐藏禁用多态,则可以得到所需的 答案 ,但原因很糟糕:

class ChildClass : ParentClass{    new public int methodTwo() // bad, do not do    {        return 2;    }}

现在,根据变量定义为a

ChildClass
还是a,您可以从同一对象获得不同的答案
ParentClass



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5588158.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存